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: 帮你监控和管理发布到生产环境的应用, 包括审计, 健康检查, 度量数据手收集等.
来源: http://www.jianshu.com/p/b2fcf089e5b7