Spring 的各个框架(Spring Framework、Spring Session等)早已在Java 生态系统中确立了不可撼动的地位,但是框架的使用略显繁复,Spring Boot可以用于快速构建 Spring 应用程序,它能彻底简化 Spring 应用程序的编写过程。
本文借用Spring Boot的官网案例,旨在介绍Spring Boot到底可以干什么,让初学者在很短的时间内对Spring Boot有一个全面的了解。
第一步:建立Maven工程
-
POM文件
<?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>com.demo</groupId> <artifactId>step01</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 继承Spring Boot的默认配置--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> </parent> <dependencies> <!--Web应用程序的典型依赖项--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--Spring Boot的开发工具,监控编译的输出文件夹,提供热启动--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> <build> <plugins> <!--Spring Boot的打包插件,mvn默认的打包工具无法在jar文件内内嵌jar文件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
-
工程结构
step01 | +-src | +-main | +-java | +-Example.java +-pom.xml
第二步:编写代码
-
Example.java
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 示例代码,来源于官网文档 * * @author 王庆丰 * @date 2018/12/4 11:03 */ @RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
第三步:调试工程
- 启动CMD,跳转到工程根目录
C:\Users\Administrator>cd F:\IdeaProjects\SpringBoot\step01
C:\Users\Administrator>f:
F:\IdeaProjects\SpringBoot\step01>
- 运行工程
mvn spring-boot:run
- 打开浏览器,输入
http://localhost:8080/
- 浏览器内容
Hello World!
第四步:持续开发
-
修改代码 Example
。。。。。。。 String home() { return "你好,世界!";//修改此处代码 } 。。。。。。。
-
切换到浏览器,刷新
你好,世界!
第五步:打包&启动
- 启动CMD,切换到工程根目录
cd F:\IdeaProjects\SpringBoot\step01
- 打包工程
mvn package
- 查看target目录
step01-0.0.1-SNAPSHOT.jar
- 启动打包后的工程
java -jar ./target/step01-0.0.1-SNAPSHOT.jar
- 刷新浏览器
你好,世界!
第六步:查看工程健康状态
- 浏览器地址栏输入如下URL
http://localhost:8080/actuator/health
- 结果
{"status":"UP"}
问题:可能遇到的问题
-
Java 版本和Maven版本
Spring Boot 2.1.1.RELEASE 要求 Java 8及以上、Maven 3.3及以上
-
修改代码后,直接刷新,浏览没有变化(热启动无效)
开启IDE的自动编译,或者直接编译修改后的文件,注意class文件的输出目录
总结:Spring Boot做了什么?
- 依赖管理:帮助导入相关依赖
- 自动配置:自动配置相关组件
- 集成内嵌容器:集成Tomcat等内嵌容器
- 打包可运行包:打包为可直接运行的jar或war包
- 开发辅助:spring-boot-devtools提供热重启、spring-boot-maven-plugin提供打包等功能
- actuator:帮你监控和管理发布到生产环境的应用,包括审计、健康检查、度量数据收集等。