天天看點

SpringBoot_YAML配置檔案值擷取

pom.xml檔案中導入依賴

<!--導入配置檔案處理器,配置檔案進行綁定就會有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
           

編寫一個JAVA Bean

@ConfigurationProperties(prefix = "parson")
/**
 * 将配置檔案中配置的每一個屬性的值,映射到這個元件中
 * @ConfigurationProperties:告訴SpringBoot将本類中的所有屬性和配置檔案中相關的配置進行綁定;
 *      prefix = "person":配置檔案中哪個下面的所有屬性進行一一映射
 *@Component
 * 隻有這個元件是容器中的元件,才能容器提供的@ConfigurationProperties功能;
 */
@Component
public class Parson {
    private String name;
    private int age;
    private String sex;
    private Map<String,Integer> map;
    private List<Integer> list;

    @Override
    public String toString() {
        return "Parson{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", map=" + map +
                ", list=" + list +
                '}';
    }

    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;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Map<String, Integer> getMap() {
        return map;
    }

    public void setMap(Map<String, Integer> map) {
        this.map = map;
    }

    public List<Integer> getList() {
        return list;
    }

    public void setList(List<Integer> list) {
        this.list = list;
    }
}
           

編寫application.yml檔案

parson:
      name: zgf
      age: 18
      sex: 男
      list: [1,2,3]
      map: {1: 1,2: 2,3: 3}
           

yaml檔案中的鍵必須和你java Bean中的屬性名互相比對才能注入成功

編寫test類:

/**
 * 告訴系統使用SpringBoot的驅動器運作而不是使用junit的驅動器
 */
@RunWith(SpringRunner.class)
/**
 * @SpringBootTest告訴系統這是一個SpringBoot的單元測試
 */
@SpringBootTest
public class SpringBoot02ApplicationTests {
    @Resource(name = "parson")
    Parson parson;
    @Test
    public void contextLoads() {
        System.out.println(parson);
    }

}