我们知道SpringBoot是基于约定的,所以很多配置都有默认值。如果想修改默认配置,可以使用application.properties或application.yml(application.yaml)自定义配置。SpringBoot默认从Resource目录加载自定义配置文件。application.properties是键值对类型(一直在用,而且默认生成)。application.yml是SpringBoot中一种新的配置文件方式。
1 . 目标
- 掌握application.properties配置
- 掌握application.yml语法
- 理解@value与@ConfigurationProperties的使用
- 会使用热部署插件
2. 讲解
2.1 application.properties
(1) 语法
-
格式:key=value
-
如果是修改SpringBoot中的默认配置,那么key则不能任意编写,必须参考SpringBoot官方文档。
-
application.properties官方文档:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
(2)案例
在resources目录下新建application.properties
#tomcat port
server.port=18081
#app context
server.servlet.context-path=/demo
此时运行,tomcat端口发生了变化,每次请求,需要加上/demo。
2.2 application.yml
(1)语法
普通数据:
说明:
key: value(注意:冒号有一个空格)
示例:
name: tom
对象数据或map
说明:
key:
key1: value1
key2: value2
示例:
user:
name: tom
age: 23
addr: beijing
集合数据1:存储简单类型
说明:
key:
value1
value2
或:
key: value1,value2
示例:
city:
beijing
anhui
jiangxi
shenzhen
或:
city: beijing,anhui,jiangxi,shenzhen
集合数据2:存储对象类型
说明:
key:
key1: vlaue1
key2: value2
示例:
student:
- name: zhangsan
age: 23
addr: BJ
- name: lisi
age: 25
addr: SZ
(2)案例
将springboot-demo1中的application.properties换成application.yml,代码如下:
server:
port: 18081
servlet:
context-path: /demo
如图:
2.3 配置文件与配置类的属性映射方式(了解)
(1)使用注解@Value映射
@value注解将配置文件的值映射到Spring管理的Bean属性值
(2)使用注解@ConfigurationProperties映射
通过注解@ConfigurationProperties(prefix=’’配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映射。
使用@ConfigurationProperties方式必须提供Setter方法,使用@Value注解不需要Setter方法。
注意使用该注解需要引入如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2.4 热部署
(1)配置pom
针对每次修改代码都需要重新发布程序,在springboot中提供了热部署插件。只需要在pom文件中添加热部署依赖即可,如下所示
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
同时需要给工程添加一个插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
</plugin>
</plugins>
</build>
(2)开启自动构建工程
1、在idea的settings中勾选自动构建工程选项即可。如图所示:
2、Shift + Ctrl + Alt + /:选择registry,弹出框选择 compiler.automake.allow.when.app.running 勾选上即可。
测试访问<http://localhost:18081/demo/hello>
后台更改数据,无需重启服务,直接刷新页面就可以看到最新数据。
3. 小结
- application.properties
- application.yml:2个空格表示当前对象的子属性,赋值 方式 属性名+:+空格+值
- @value直接将配置文件中指定key的数据注入,@ConfigurationProperties可以根据key将属性注入到指定对象中。
- 热部署插件开启步骤:
- 添加热部署依赖,添加插件包
- IDEA开启自动编译