SpringBoot配置文件——yaml配置文件写法和自定义类绑定配置提醒

Properties

和以前spring一样用法。

yaml:优先级不如properties

简介:适合用来做以数据为中心的配置文件。
基本语法:

1.key: value——注意:后面的空格
2.使用缩进表示层级关系,只要元素左对齐即表示同层级。
3.# 表示注释
4.字符串不加‘ ’或" ",不然代表转义。
\n 换行输出 yml里使用单引号,则将其作为字符串输出
yml使用双引号,则还是换行输出

数据类型

1 .单个,不可分割的值:string,boolean,date等

k: v

2 .对象:键值对的集合

#单行:
obj: {k1:v1,k2:v2,k3:v3}
#多行
obj:
	k1: v1
	k2: v2
	k3: v3

3 .数组:array,list等

#单行:
k: [v1,v2,v3]
#多行
k:
  - v1
  - v2
  - v3

以Person复杂对象为例:

@Component
@ConfigurationProperties(prefix = "person")
@Data
public class Person {
    private String userName;
    private Boolean boss;
    private Date birth;
    private Integer age;
    private Pet pet;
    private String[] interests;		//集合
    private List<String> animal;    //集合
    private Map<String,Object> score;	//对象
    private Set<Double> salarys;	//集合
    private Map<String,List<Pet>> allPets;
}
@Data
public class Pet {
    private String name;
    private Double weight;
}

yml实际写法:
application.yml

person:
  userName: zhangsan
  boss: true
  birth: 2022/8/7
  age: 25
#  interests: [足球,篮球]
  interests:
    - 篮球
    - 足球
  animal: [,]
#  score:
#    english: 90
#    math: 90
  score: {english: 90,math: 90}
  salarys:
    - 9999.89
    - 9899.56
  pet:
    name: 旺财
    weight: 20
  allPets:
    sick:
      - {name: 狗子,weight: 25}
      - name: 猫子
        weight: 18.5
      - name: 虫子
        weight: 1.3
    healthy: [{name: mimi,weight: 23},{name: miaomiao,weight: 24}]

打印看看效果:

@ResponseBody
@Controller
public class HelloController {
    @Autowired
    Person person;

    @RequestMapping("/person")
    public Person person(){
        return person;
    }
}

结果:
SpringBoot配置文件——yaml配置文件写法和自定义类绑定配置提醒_第1张图片

自定义类绑定的配置提醒

写application.yml的时候不像spring的配置一样有提醒,不便于开发。
引入依赖:官网Configuration Metadata位置

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-configuration-processorartifactId>
    <optional>trueoptional>
dependency>

结果:有提醒了。
SpringBoot配置文件——yaml配置文件写法和自定义类绑定配置提醒_第2张图片
userName user-name是一样的作用,-n就是N。
旧版本打包的时候注意把依赖解除,不要把configuration-processor也打包了(在pom有相应的写法),目前使用的2.7版本官网上没有这一段,应该是已经把这个问题解决了。如果用老版本的springboot需要注意一下。

你可能感兴趣的:(笔记,spring,boot,java,spring)