企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 第三章 从HellWorld开始 ### 创建Maven工程 打开Intellij或Eclipse,新建一个Maven工程(Project),其中GroupId和ArtifactId可以随便添写,如Hello 如果不清楚如何创建Maven工程,请大家自行百度。 创建好后(笔者创建的名称为HelloWorld),如果使用的是Intellij IDE,它会弹出Maven projects need to be imported提示,选择“Enable Auto-Import”。 工程目录结构为: ~~~ HelloWorld --src --main --java --resources --test(里面内容可以忽略) --pom.xml ~~~ ### 配置pom.xml文件 打开工程名下的pom.xml,原内容如下: ~~~ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>hello</groupId> <artifactId>hello</artifactId> <version>1.0-SNAPSHOT</version> </project> ~~~ 1、添加parent标签,以下指明SpringBoot版本为1.4.0 ~~~ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> ~~~ 2、添加starter-web依赖,因为我们是开发Web平台,所以必须依赖spring-boot-starter-web,它内置了tomcat容器。 ~~~ <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ~~~ **添加后完整的pom.xml文件内容为:** ~~~ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>hello</groupId> <artifactId>hello</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project> ~~~ ### 创建入口类 **创建包名** 展开src->main->java,右击java,新建一个package,名称为lightsword。右击lightsword,新建一个java类,名称为lightsword.java。 lightsword.java内容如下:(增加一个main方法,调用SpringApplication类的run方法,引用了一个SpringBootApplication注解) ~~~ package lightsword; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class lightsword { public static void main(String[] args){ SpringApplication.run(lightsword.class, args); } } ~~~ 运行lightsword.java后,出现以下信息表示运行成功: ~~~ ... ... . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ .... .... : Started lightsword in 3.953 seconds (JVM running for 5.172) ~~~ **为了打印Hello World,我们在main方法加入一行代码** ~~~ public static void main(String[] args){ SpringApplication.run(lightsword.class, args); System.out.println("Hello world"); } ~~~ 再次运行,结果多了一行Hello world: ... .... : Started lightsword in 3.908 seconds (JVM running for 4.95) Hello world **可能遇到的问题:端口冲突** 如果你电脑上的8080端口号被其它程序(如jenkins)占用了,则运行lightsword会报以下错误: ~~~ java.net.BindException: Address already in use ... ... Failed to start component [Connector[HTTP/1.1-8080]] ... ~~~ **解决方法** 在src->main->resources目录下新建一个文件,名称为application.properties(这是SpringBoot统一的配置文件) 加了以下一行内容:(取个电脑上可用的端口号,如下面的9527,看过星爷电影的都懂的) server.port = 9527 再次运行即可。 ### 讲解 分析我们的入口类lightsword.java。 1. @SpringBootApplication注解,它其实帮我们做了很多事情,包括各种配置,扫描等。它相当于以下三个注解的作用: @Configuration @EnableAutoConfiguration @ComponentScan 为了简化和方便,我们必须在入口类加入以上注解,当然最方便的就使用@SpringBootApplication一个注解。 2. 调用SpringApplication类的run启动应用程序。 **后面章节我们都使用9527端口作为讲解。**