yml配置文件的格式主要是使用k:v的形式进行配置的。我们以前的配置主要是使用 properties的形式配置,现在spring推荐使用yml格式。
yml特别注重使用空格
我们这里主要讲的是使用配置文件给实体类进行赋值,我们还可以使用@Value进行赋值@Value("阿威") private String name;
实例
我们创建一个springboot项目,我们创建一个实体类。
@ConfigurationProperties(prefix = “person”)我们一定要添加这个注解,这个时执行yml文件中的。
package com.aw.model;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private int age;
private Boolean sex;
private Date date;
private Map<Object,Object> map;
private List<Object> lists;
private Dog dog;
}
package com.aw.model;
import lombok.Data;
@Data
public class Dog {
private String name;
private String color;
}
yml的配置,可以使用El表达式,还可以写成这种行内式 map: {k1:O1,k2:O2 },list:[l1,l2]
person:
name: 阿威${random.uuid}
age: ${random.int}
sex: true
date: 2021/05/10
map:
k1: Obj1
k2: Obj2
lists:
- l1
- l2
dog:
name: ${person.dogname:hello}_哈士奇//这个时person.dogname有没有这个值,没有的话给他一个hello值
color: red
测试类
@SpringBootTest
public class SpringbootTest {
@Resource
private Person person;
@Test
void test(){
System.out.println(person);
}
}
Person(name=阿威45eea2bb-ffe2-4dbc-b2ae-a7635279b416, age=1901163043, sex=true, date=Mon May 10 00:00:00 GMT+08:00 2021, map={k1=Obj1, k2=Obj2}, lists=[l1, l2], dog=Dog(name=hello_哈士奇, color=red))