使⽤配置⽂件,可以使程序完成⽤⼾和应⽤程序的交互,或者应⽤程序与其他应⽤程序的交互
SpringBoot配置⽂件
SpringBoot⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的 ⽬的. 很多项⽬或者框架的配置信息也放在配置⽂件中,⽐如:
• 项⽬的启动端⼝ • 数据库的连接信息(包含⽤⼾名和密码的设置)
• 第三⽅系统的调⽤密钥等信息
• ⽤于发现和定位问题的普通⽇志和异常⽇志等.
配置⽂件的格式 Spring Boot 配置⽂件有以下三种:
• application.properties
• application.yml
• application.yaml
yml为yaml的简写,实际开发中出现频率最⾼. yaml和yml的使⽤⽅式⼀样
特殊说明
1. 理论上讲 properties 和 .yml 可以并存在于⼀个项⽬中,当并存时,两个配置都会加载.如果配置⽂件内容有冲突,则以 .properties 为主 .properties 优先级更⾼.
2. 虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种 统⼀的配置⽂件格式,这样可以更好的维护(降低故障率).
properties 配置⽂件是最早期的配置⽂件格式,也是创建SpringBoot项⽬默认的配置⽂件
properties 基本语法
properties 是以键值的形式配置的,key和value之间是以"="连接的,如:
配置项⽬端⼝号
server.port=8080
配置数据库连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb? characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=root
读取配置⽂件
如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。
@Value 注解使⽤"
properties 配置如下:


最终执⾏效果:

properties 缺点分析
properties 配置是以key-value的形式配置的,如下图所⽰:

从上述配置key看出,properties配置⽂件中会有很多的冗余的信息,⽐如这些:

yml基本语法
yml是树形结构的配置⽂件,它的基础语法是"key:value".
key和value之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略
基础语法如下:

使⽤yml连接数据库 yml使⽤⽰例:

yml和properties连接数据库的配置对⽐

yml配置不同数据类型及null

yml配置读取
yml读取配置的⽅式和properties相同,使⽤@Value 注解即可,实现代码如下:
yml配置:


配置对象 我们还可以在yml中配置对象,如下配置:

或者是使⽤⾏内写法(与上⾯的写法作⽤⼀致):
student: {id: 1,name: Java,age: 18}
这个时候就不能⽤@Value 来读取配置中的对象了,此时要使⽤另⼀个注解 @ConfigurationProperties 来读取,具体实现如下:

调⽤类的实现如下:

运⾏结果如下:

配置集合
配置⽂件也可以配置list集合,如下所⽰:

集合的读取和对象⼀样,也是使⽤ @ConfigurationProperties 来读取的,具体实现如下:

访问集合的实现如下:

配置Map
配置⽂件也可以配置map,如下所⽰:

Map的读取和对象⼀样,也是使⽤ @ConfigurationProperties 来读取的,具体实现如下:

打印类的实现如下:
