1. 程式人生 > >SpringBoot之@ConfigurationProperties註解的使用

SpringBoot之@ConfigurationProperties註解的使用

@ConfigurationProperties(prefix = "person")註解修飾某類,其作用是告訴springBoot,此類中的屬性將與預設的全域性配置檔案中對應屬性一一繫結。屬性名必須是application.yml或application.properties。【prefix = "person"】表示與配置檔案中哪個層級的屬性進行繫結。

配置檔案的位置:\src\main\resources\application.yml

案例:bean類Person.java

package com.atguigu.springboot.bean;
@Component
@ConfigurationProperties(prefix = "person")//只能從預設的全域性檔案中獲取
public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Boolean getBoss() {
        return boss;
    }

    public void setBoss(Boolean boss) {
        this.boss = boss;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public Map<String, Object> getMaps() {
        return maps;
    }

    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }

    public List<Object> getLists() {
        return lists;
    }

    public void setLists(List<Object> lists) {
        this.lists = lists;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                ", dog=" + dog +
                '}';
    }
}

配置檔案:

person:
  lastName:  fang \n xin \n de
  age:  18
  boss: false
  birth: 2018/12/10
  maps: {a1: fang, a2: li,a3: zhang}
  lists: [cat,pig,dog]
  dog:
    name: xiaogou10號
    age:  1

 測試案例:

package com.atguigu.springboot;
 
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot02ConfigApplicationTests {
	@Autowired
	Person person;
	 
	@Test
	public void contextLoads() {
		System.out.println(person);
	}
}

列印結果:

Person{lastName='fang \n xin \n de', age=18, boss=false, birth=Mon Dec 10 00:00:00 CST 2018, maps={a1=fang, a2=li, a3=zhang}, lists=[cat, pig, dog], dog=Dog{name='xiaogou10號', age=1}}