项目结构
首先看一下yaml的语法
看一下yaml文件
person:
name: xiaowu
age: 3
sex: man
# 数组
list:
- LoL
- PuBG
- 篮球
# map集合
map: {
k1: v1,k2: v2}
# 对象
dog:
name: 大黄
age: 3
创建两个实体类分别是Person和Dog
导入lombok依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
</dependency>
package com.zkw.pojo;
import lombok.Data;
import org.springframework.stereotype.Repository;
@Repository
@Data
public class Dog {
private String name;
private Integer age;
}
@ConfigurationProperties作用:
将配置文件中的每一个属性的值,映射到这个组件中;
告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
参数 prefix = “person” :将配置文件中person下面的所有属性对应
只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能
使用@ConfigurationProperties这个注解需要导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
package com.zkw.pojo;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Data
@Repository
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private Integer age;
private String sex;
private List<String>list;
private Map<String,Object> map;
private Dog dog;
}
测试
package com.zkw;
import com.zkw.pojo.Dog;
import com.zkw.pojo.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot01HelloworldApplicationTests {
@Autowired
//@Qualifier指定哪一个被装配进来
// @Qualifier(value = "dog")
private Person person;
@Test
void contextLoads() {
System.out.println(person);
}
}
结果如下