Spring Boot 使用 yml 配置文件
1、Spring Boot 支持两种配置文件:properties、yaml
yml 配置文件的配置规则:
- 使用缩进表示层级关系 [ 缩进不能用 tab 键,而是使用空格键 ]
- “#” 表示注释、双引号会将字符进行转义,而单引号不会。
2、演示案例:
2.1、创建 Java Bean
- Address.java
@Data
@ToString
public class Address {
private String value;
}
- Book.java
@Data
@ToString
public class Book {
private String bookName;
private String price;
}
- User.java
@Data
@ToString
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private String username;
private String password;
private Boolean regist;
private Date date;
private Integer age;
private String[] interests;
private List<String> cars;
private Set<Double> salarys;
private Address address;
private Map<String, List<Book>> allBooks;
}
2.2、创建配置文件 application.yml
- 字面量的配置形式:key: value [ 冒号后面带一个空格 ]
user:
# String
username: zhangsan
password: 123456
# Boolean
register: false
# Date
date: 2021/01/12
# Integer
age: 17
- 数组的配置形式:层级的写法或者行内写法都可以 [ 数组、List、Set ]
user:
# String[]
interests: [reading,basketball] # 行内写法
# Set
salarys: [2999.99,3000]
# List
cars: [丰田,宝马]
# interests: # 与行内写法等价
# - reading
# - basketball
- 对象:Object、Map 等
user:
# Object
address: {value: 广州北京步行街}
# Map
allbooks: {phycological: [{bookName: 心理学与生活,price: 48.50}],programming: [{bookName: Thinking in Java,super,price: 68.0}]}
# 写法一:
# allbooks:
# phycological:
# - bookName: 心理学与生活
# - price: 48.50
# programming:
# - bookName: Thinking in Java
# - price: 68.0
# 写法二:
# allbooks:
# phycological:
# - {bookName: 心理学与生活,price: 48.50}
# programming:
# - {bookName: Thinking in Java,price: 69.0}
扩展:配置提示 [ 将类绑定到配置文件中提示其属性值 ]
1、导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2、打包时将配置处理器 processor 排除
补充:配置处理器只是方便我们开发的小工具,与应用的功能无关,所以在打包时应该将其排除!
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 排除配置处理器 -->
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
简单总结:
- 简单数据类型:key: value 表示
- 数组和集合:key: [] 表示
- 对象和Map等:key: {} 表示
参考资料:https://www.yuque.com/atguigu/springboot/rg2p8g