[SpringBoot] SpringBoot-03-配置文件格式
一、application.properties 配置文件
SpringBoot 项目最初 resources 下会有一个 application.properties 文件,格式和普通的 properties 文件一样,使用 属性名=属性值
进行配置
如下例,设置服务器端口号和日志等级:
# 端口设为 80 端口,默认为 8080
server.port=80
# 日志等级设为 warn,默认为 info
logging.level.root = warn
二、yml 和 yaml 配置文件
在 resources 中新建 application.yml 和 application.yaml,并且文件名是 application 才能控制项目
yml 和 yaml 都是 yaml 文件,格式和作用是相同的,但据说 yml 用的比较多,毕竟能少写一个字母(doge)
1. 配置格式
(1)普通属性
yaml 文件中用 属性名: 属性值
的格式进行配置,层级关系用换行和缩进做限制,如下例,同样配置服务器端口号和日志等级:
server:
port: 80
logging:
level:
root: warn
既像 Python 又像 Json
(2)数组属性
使用多个 - 属性值
或者 [属性值]
表示数组,仅仅用逗号分隔也是可以的,如下例:
arr1:
- 1
- 3
- 5
arr2: [2, 4, 6]
arr3: 7, 8, 9
又有点像 Markdown
(3)注意事项
- 属性名大小写敏感
- # 号表示注释
- 空格的数量无所谓(通常两个空格),但层级关系要严格对齐
- 冒号和属性值之间一定要有空格(有效:
x: 100
,无效:x:100
)
2. idea添加配置文件
自己新建的 yaml 文件可能不被标记为配置文件,而且编写时没有提示
可以手动添加为 SpringBoot 配置:
在 File - Project Structure - Facets 中点 Customize Spring Boot,点加号,选择文件后点 ok,如图:
添加后文件图标就变了,代码也有提示了:
三、生效优先级
三种配置文件中出现对同一属性的配置时,生效的优先级为:
properties > yml > yaml
例如三种文件中都配置了服务器端口,最终采用的是 application.properties 中的值
若 application.properties 中没有此值,则采用 application.yml,最后才是 application.yaml