Spring Boot配置文件
Spring Boot的核心是自动配置(或者叫默认配置),通过自动配置大大减少Spring项目的配置编写。但是在实际开发中,我们仍然需要根据需求来适当修改某些必要的参数配置,这时Spring Boot提供了两种格式的配置方便开发者进行修改。
- applicaiton*.properties
- application*.yml(或者application*.yaml)
1 application*.properties
1.1 Spring Boot内置属性
Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者src/main/resources/config下。在 src/main/resources/config 下的优先级高 。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。下面以修改Tomcat的访问端口为例:
1)建立application.properties配置
2)编写修改Tomcat端口属性
Tomcat的默认是8080,改为8888
3)运行引导类,访问端口已经改变
除了Tomcat端口以外,Spring Boot还定义了大量的内置属性,以下链接为Spring Boot官方提供的参考:
1.2 自定义属性
1)基本类型
nickname=eric
age=20
2)JavaBean类型
user.nickname=eric
user.age=20
3)数组/List集合
user.list=eric,jack,rose
或者
user.list[0]=eric
user.list[1]=jack
user.list[2]=rose
4)Map集合
user.map={nickname:'eric',age:20}
或者
user.map.nickname=eric
user.map.age=20
1.3 Profile多环境配置
当应用程序需要部署到不同运行环境时,一些配置细节通常会有所不同,最简单的比如日志,生产日志会将日志级别设置为WARN或更高级别,并将日志写入日志文件,而开发的时候需要日志级别为DEBUG,日志输出到控制台即可。如果按照以前的做法,就是每次发布的时候替换掉配置文件,这样太麻烦了,Spring Boot的Profile就给我们提供了解决方案,命令带上参数就搞定。
这里我们来模拟一下,只是简单的修改Tomcat端口来测试:
1)建立不同环境的application.properties文件
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:
2)每个文件里面的Tomcat访问端口不同
在原来的application.yml里,指定需要激活的配置
3)运行引导类,查看结果
从结果看到,激活的配置是application-dev.yml。
源码下载:https://pan.baidu.com/s/1nOe_TvwPQFwOWjUM5O57Mw
2 application*.yml
1.1 yml格式简介
yml或yaml所表示的YAML Ain’t Markup Language,YAML是一种简洁的非标记语言,文件名后缀为yml,java中经常用它描述配置文件application.yml。YAML以数据为中心,比json/xml等更适合做配置文件。使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。
在yml之前使用最多的配置文件形式是xml和properties文件。xml文件太过繁琐,看过的人都知道,想要新加一个配置节点的话还需要包含在<>标签里;而properties配置文件没有了标签,不过当你的配置有很多层级的时候,写完之后你会发现会有大量重复的代码。而yml/yaml文件结合了两者的优势,当你新增节点配置的时候,不需要标签,在写多层级配置的时候也不会产生重复代码。
1.2 yml格式书写规则
- 大小写敏感
- 使用缩进表示层级关系
- 禁止使用tab缩进,只能使用空格键
- 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
- 使用#表示注释
- 字符串可以不用引号标注
1.3 Spring Boot内置属性
yml格式也修改Spring Boot默认的属性配置,如下:
1.3 自定义属性
yml格式也可以自定义丰富的数据类型
1)基本类型
nickname: eric
age: 20
注意:属性值大小写敏感
2)JavaBean类型
user:
nickname: eric
age: 20
3)数组/List集合
users:
list:
- eric
- jack
- rose
4)Map集合
user:
map: {nickname: erci,age: 20}
1.4 Profile多环境配置
yml格式也可以定义不同环境的配置,在启动时指定环境配置
1)定义不同环境的yml配置
2)指定环境名称
3)运行测试
从结果可以看到,使用的是application-prod.yml配置。
热门文章
优秀文章