我们知道SpringBoot是基于约定的,所以很多配置都有默认值。如果想修改默认配置,可以使用application.properties或application.yml(application.yaml)来自定义配置。SpringBoot默认从resources目录加载自定义配置文件。application.properties是键值对类型(一直在用,而且默认生成)。而application.yml是SpringBoot中一种新的配置文件方式,现在开始流行使用
1 application.properties
(1) 语法
格式:key=value
如果是修改SpringBoot中的默认配置,那么key则不能任意编写,必须参考SpringBoot官方文档。
application.properties官方文档:
(2)案例
在resources目录下新建application.properties
#tomcat port
server.port=18081
#app context
server.servlet.context-path=/demo
此时运行,tomcat端口发生了变化,每次请求,需要加上/demo。
(3)yml文件对比如下↓
将springboot-demo1中的application.properties换成application.yml,代码如下:
server:
port: 18081
servlet:
context-path: /demo
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
使用以上语法可以实现给spring容器中的对象赋值:
但要注意在对象类中添加注解@ConfigurationProperties(prefix = "key") 表明对象属性的配置名字
使用注解@ConfigurationProperties映射
通过注解@ConfigurationProperties(prefix=''配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映射。
使用@ConfigurationProperties方式必须提供Setter方法,使用@Value注解不需要Setter方法。