springboot是一款简化基于spring开发java程序的框架,很明显的就是使用spring boot之后不需要xml配置文件,下面我们基于springboot开发一个hello world程序。
1、环境准备
spring boot版本:2.0.8.RELEASE
jdk:java8+
构建工具:maven3.2+或gradle4.x
servlet容器:servlet3.1+
注意:不同的springboot版本需要的jdk、maven、servlet版本不同,springboot支持将servlet容器嵌入到程序中,不需要外置的tomcat或其他servlet容器。
2、创建maven项目
通过idea或eclipse创建一个archetype artifact是maven-archetype-quickstart的maven项目。编辑该项目的pom.xml文件,让该项目继承spring-boot-starter-parent。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.8.RELEASE</version>
</parent>
springboot提供了大量的starter,可以增加依赖到项目的classpath中。spring-boot-starter-parent是一个特殊的starter,默认提供了springboot需要的其他依赖包版本,让我们增加其他依赖包的时候无需设置版本。
此时项目依赖列表是空的,接下来给项目增加spring-boot-starter-web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
增加该依赖之后,可以看到项目依赖列表中出现了很多jar包。确实简化了很多,没有使用springboot之前,我们需要在pom.xml中增加spring-core、spring-context、spring-webmvc等等。
3、编写程序入口和controller
在项目的src/main/java中创建一个package,在该package中创建一个java文件
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
main方法就是整个程序的入口,直接运行该java程序即可,看到下面这行日志表示该程序启动成功。
Started Application in 6.209 seconds (JVM running for 7.273)
打开浏览器访问http://localhost:8080/,可以看到下面这样的内容。
在该程序中,EnableAutoConfiguration通过classpath中的mvc依赖包,自动配置了springmvc相关的内容,作为开发人员直接编写处理网络请求的controller即可。
4、打包成可执行jar
普通的mvn package执行之后,并没有将依赖包打包进去,生成的jar不能执行,我们需要在pom.xml文件中添加springboot打包插件。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
该插件会在maven打包后repackage,通过mvn package执行日志可以看到。
[INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ springboot-hello ---
[INFO] Building jar: D:\j2ee_workspace\frameworkspace\springboot-hello\target\springboot-hello-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.0.8.RELEASE:repackage (default) @ springboot-hello ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.588 s
[INFO] Finished at: 2019-03-10T12:26:17+08:00
[INFO] Final Memory: 29M/277M
[INFO] ------------------------------------------------------------------------
打开cmd进入到项目的target目录中,通过java -jar springboot-hello-0.0.1-SNAPSHOT.jar命令运行程序,该方式更适合生产环境。