一、导引
1、简介
Spring Boot 是由Pivotal团队提供的全新框架,其设计目的是 用来简化 Spring 应用的初始搭建以及开发过程 。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot致力于在快速应用开发领域(rapid application development)成为领导者。
2、开发流程
相比于传统的 Spring 开发流程,Spring Boot 要方便快捷得多。
-
Spring 应用开发流程
配置环境 =》创建工程 =》构件目录结构 =》组件依赖管理 =》配置Web容器 =》设置组件参数 =》业务开发 =》测试与构建 =》 手动部署 =》运维与监控
-
Spring Boot 应用开发流程
配置环境 =》Spring Initializr =》配置参数(可选)=》业务开发 =》自动构建 =》自动部署 =》运维与监控
3、Spring 核心特性
- 是独立运行的 Spring 项目
- “习惯优于配置”,极大的提高了开发效率
- 极简的组件依赖,自动发现与自动装配
- 提供运行时的应用监控
- 与分布式架构和云计算的天然集成(Spring Data、Spring Cloud)
二、Maven 构件Spring Boot 应用
1、环境要求
JDK 8.0 及以上、IntelliJ集成开发平台
2、Spring Boot 目录结构
目录 | 描述 |
---|---|
/src/main | 项目根目录 |
/java | Java 源代码目录 |
/resources | 资源目录 |
/resources/static | 静态资源目录 |
/resources/templates | 表示层页面目录 |
/resources/application.properties | Spring Boot 配置文件 |
/test | 测试文件目录 |
3、Maven 构建 SpringBoot 项目
创建空的Maven项目,创建如上的目录结构,在 pom.xml 中添加如下三部分配置即可。
<!-- 创建Spring Boot 的基础引用 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<!-- 使用starter启动器:向当前项目中添加支持Java web 的组件,使用预制的版本 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 定义 Spring Boot 构建、打包方式(插件方式) -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
4、SpringInitialize 构建 SpringBoot 项目
IntelliJ 新建项目选择【Spring Initializr】即可自动完成创建。
三、SpringBoot 启动流程与配置
1、Spring Boot 入口类
- 入口类命名通常以 *Application 结尾
- 入口类上增加 @SpringBootApplication 注解
- 利用 SpringApplication.run() 方法启动应用
2、SpringBoot 启动流程
3、SpringBoot 属性文件配置
- SpringBoot 支持两种配置文件
- 属性文件: application.properties
- YAML格式: application.yml
- application.properties 配置方式
配置名称 | 描述 | 默认值 |
---|---|---|
server.port | 端口号 | 8080 |
server.servlet.context-path | 设置上下文 | / |
logging.file | 日志文件输出路径 | 无 |
logging.level | 最低日志输出级别 | info |
debug | false | 开启/关闭调试模式 |
spring.datasource.* | 与数据库相关的配置 | … |
… | … | … |
- 示例
# 配置访问端口(默认8080)
server.port=800
# 设置应用上下文
server.servlet.context-path=/springboot
# 配置日志输出到指定的文件中
logging.file=e:/mySpringboot.log
# 配置日志的输出级别 (默认 info)
# 日志的输出级别:debug --> info --> warn --> error --> fatal
logging.level.root=info
# 配置是否开启调试模式 (默认 false)
debug=false
# 配置 JDBC 驱动类
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 配置数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/test
# 设置数据库访问用户名
spring.datasource.username=root
# 用户密码
spring.datasource.password=root
4、SpringBoot YAML方式配置
YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。
- YAML语法格式
- 标准格式:key:(空格)value
- 使用空格代表层级关系,以":"结束
- 示例配置
# 是否开启debug
debug: false
# 日志相关
logging:
level:
root: info
file: /local/user/app-prd.log
# 数据库相关
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://155.21.5.88:3308/prd
username: root2
password: 102
# 自定义配置项
mall:
config:
name: 优美商城
description: 这是一家化妆品特卖网站
hot-sales: 203
show-advert: true
# 应用端口
server:
port: 80
5、Spring Boot 自定义配置项
Spring Boot允许我们自定义应用配置项,在程序运行时允许动态加载,这为程序提供了良好的可维护性。在实际项目开发中,我们通常将项目的自定义信息放在配置文件中。
- 在上面的 YAML 配置文件在添加如下自定义配置项
# 自定义配置项
mall:
config:
name: 美美商城
description: 这是一家化妆品销售网站
hot-sales: 203
show-advert: true
- 控制器类访问方式
@Controller
public class MyController {
// @Value 注解会自动扫描 YAML 文件进行注入
// 注入时会自动进行类型转换
@Value("${mall.config.name}")
private String name;
@Value("${mall.config.description}")
private String description;
@Value("${mall.config.hot-sales}")
private Integer hotSales;
@Value("${mall.config.show-advert}")
private Boolean showAdvert;
@RequestMapping("/info")
@ResponseBody
public String info() {
return String.format("name: %s, description: %s, hot-sales: %s, show-advert: %s", name, description, hotSales, showAdvert);
}
}
6、环境配置文件
- SpringBoot 可针对不同的环境提供不同的 Profile 文件,即多个 .yml文件
- Profile文件的默认命名格式为 application-{env}.yml
- 使用 spring.profiles.active 选项来指定不同的 profile
-
选择配置文件
可以在 application.yml 选择使用哪一个配置文件。
spring:
profiles:
# 指定使用的配置文件
active: prd
三、打包与运行
1、利用 Maven 的 package命令,生成可独立运行的 Jar包
使用 Maven 的打包命令,在填写的指定目录会生成对应的 Jar 包。
2、cmd 中利用 java -jar xxx.jar 命令 启动 SpringBoo t应用
在 cmd 中使用 java -jar xxx.jar 即可启动 SpringBoo t应用。
3、Jar包可自动加载同目录的 application配置文件
运行Jar包生成的项目,会优先加载同目录的 application配置文件,如果想要修改 application配置,直接在同目录下复制 application配置文件,直接修改即可。