@Component
@ConfigurationProperties(prefix = "person")
//@PropertySource(value = "classpath:prop.properties") //加载指定的配置文件
@Data
public class Person {
//@Value("${name}")
private String lastName;
//@Email(message = "邮箱格式错误")//jsr303校验
private Integer age;
private Boolean happy;
private Date birth;
private Map<String,Object> maps;
private List<Dog> dogList;
}
@Component
//(把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)
public class Dog {
@Value("旺财")
private String name;
@Value("3")
private Integer age;
public Dog() {
}
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
application.yaml配置文件
person:
last-name: xiaozhang
age: ${random.int}
happy: false
birth: 2022/2/2
maps: {k1: v1,k2: v2}
dogList:
-
name: ${person.name:hello}_旺财
age: 6
-
name: 大狗
age: 8
-
name: 小狗
age: 1
测试运行:
@SpringBootTest
class Springboot02ConfigApplicationTests {
// @Autowired
// private Dog dog;
@Autowired
private Person person;
@Test
void contextLoads() {
// System.out.println(dog);
}
@Test
void testProp(){
System.out.println(person);
}
}
运行结果:
Person{lastName='xiaozhang', age=-1566400886,
happy=false, birth=Wed Feb 02 00:00:00 CST 2022,
maps={k1=v1, k2=v2},
dogList=[Dog{name='hello_旺财', age=6}, Dog{name='大狗', age=8}, Dog{name='小狗', age=1}]}