1.配置文件的作用
整个项目中所有重要的数据都是在配置文件中配置的,比如:
- 数据库的连接信息(包含用户名和密码的设置);
- 项目的启动端口;
- 第三方系统的调用秘钥等信息;
- ⽤于发现和定位问题的普通日志和异常日志等。
想象⼀下如果没有配置信息,那么 Spring Boot 项目就不能连接和操作数据库,甚至是不能保存可以用于排查问题的关键日志,所以配置文件的作用是非常重要的。
2.配置文件有两种格式:
.properties
.yml
.properties是老版配置文件,.yml是新版配置文件
一、properties详解
IDEA社区版不支持 properties格式的日志的提示,需要安装相应插件。
3.1properties 基本语法
(ps:小技巧,配置文件中使用 # 来添加配置信息)
以键值的形式配置, key = value
日志中包含两种配置信息,一种是系统级别的配置信息,另一种是用户自定义的配置信息。
3.2读取配置文件
使用@Value 注解
语法:@Value 注解(“${xxx}”)
3.3 properties缺点分析
从上述可以看出,properties 配置文件中会有很多的冗余的信息。
所以就有了yml,从而可以解决这个问题~~
如下图:
二、yml详解
2.1yml基本语法
key: value
注意 key 和 value 之间使用英文冒号加空格的⽅式组成的,其中的空格不可省略。
2.2 properties读取配置文件
yml和properties读取配置文件的方法一致,使用@Value 注解
注意事项:value 值加单双引号
从上述结果可以看出:
- 字符串默认不用加上单引号或者双引号。
- 单引号会转义特殊字符,特殊字符最终只是⼀个普通的字符串数据。
- 双引号不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思。
2.3 yml可以配置对象
2.3.1在yml中配置对象
有两种书写方式:
2.3.2读取配置中的对象
此时不能使用不能使用 @Value,因为其只能读取单个值,不能读取对象。
而需使用**@ConfigurationProperties**
2.4yml可以配置集合
2.4.1在yml中配置对象
2.4.2读取配置中的对象
同样使用@ConfigurationProperties
三、yml VS properties总结
1.properties 是以 key=value 的形式配置的键值类型的配置文件,而 yml 使用的是类似 json 格式的树形配置方式进行配置的,yml 层级之间使用换行缩进的方式配置,key 和 value 之间使用“: ”英文冒号加空格的方式设置,并且空格不可省略。
2.properties 为早期并且默认的配置文件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的解决数据冗余的问题。
3.yml 通用性更好,支持更多语言,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置⽂件。
4.yml 虽然可以和 properties 共存,但⼀个项目中建议使用统⼀的配置类型文件。