由于最近难得有了相对空闲的暑假
小学期时间,决定重新重头学一遍springboot,把自己本来学的半懂不懂的东西彻底搞明白
SpringBoot2 - 配置文件
yml语句的使用规则
使用缩进代表层级关系
记得内容前要加空格
列表表示法
[阿猫,阿狗]
每个成员换行,且之前加上“- ”
如果成员也为多数据结构(对象)则使用{english:80,math:90}这样的json写法(还是记得加空格吧)
对象也可以首个属性前加“- ”,后续属性换行并列但不加
要用@ConfigurationProperties(prefix = “XXX”)来把某个类和配置文件里绑定
代表字符串时,加不加单/双引号都是一样的结果
配置同一个对象时,优先级 properties > yml >yaml
(一个疑似和标题无关的事情)
貌似在entity中某类的对象上加上@Data好像就包含了所有getter、setter、args等构造函数
使用范例
假设在entity层里的情况如下
@Data
@ToString
public class Pet { //这是宠物类
private String name;
private Double weight;
}
@ConfigurationProperties(prefix = "person")
@Conponent //如果去掉这个注解呢?
@ToString
@Data
public class Person {
private String userName;
private Date birth;
private String[] interests;
//形如 peivate List<String> animals; 与上面interests相同
private Map<String, Object> score;
private Map<String,List<Pet>> allPets;
}
那么当我们在application.yml中对Person的各属性值进行配置时,格式应该如下
person:
username: zhangsan //此处双引号不会额外处理,有换行符就会换行,单引号会返转义(多个杠),使输出时\n保持原状
interests: [篮球,足球]
# interests:
# - 篮球
# - 足球
score: {english: 80, math: 90}
allPets:
sick:
- {name: 阿狗, weight: 99.99}
- name: 阿猫
weight: 88.88
- name: 阿虫
weight: 77.77
health: [{name: 阿花, weight: 199.99},{name: 阿明, weight: 199.99}]
(为了展示多种格式可以混用以上可能看起来并不整齐,实际操作时可以选择一种以统一格式)
睡前再更新一条
为了方便在写yml时可以像自带的配置一样能自动弹出提示,可以在pom.xml中添加以下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configration-processor</artifactId>
<optional>true</optional>
</dependency>
(记得写完依赖重启项目)
(另外这样的自动配置会把驼峰形写成蛇形)
但是由于以上功能在打包时并不需要使用,为了防止打包时要加载的东西太多,可以在打包相关的配置<artifactId>spring-boot-maven-plugin</artifactId>
下添加以下配置:
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuationprocessor</artifactId>
</exclude>
</excludes>
</configuration>
这样打包的时候这部分就可以被忽略啦~