1、導入依賴
<!--導入配置文件處理器 配置文件進行綁定就會有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency> <!--spring boot 的單元測試 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
2、創建要進行屬性注入的配置類
package com.atguigu.controller.bean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; /** * @author houChen * @date 2020/6/14 22:36 * @Description: */ /** * ConfigurationProperties: * 將配置文件中每一個屬性的值,都映射到這個組件中 * @ConfigurationProperties : 告訴SpringBoot將本類中的所有屬性 和配置文件中相關的配置進行綁定 * prefix = "person" ==》指定類中的屬性和配置文件中哪個下面的屬性進行一一配置 * * 配置類必須是容器中的組件 */ @Component @ConfigurationProperties(prefix = "person") public class Person { private String lastName; private Integer age; private Boolean boss; private Map<String,Object> maps; private List<Object> lists; private Dog dog; @Override public String toString() { return "Person{" + "lastName='" + lastName + '\'' + ", age=" + age + ", boss=" + boss + ", maps=" + maps + ", lists=" + lists + ", 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 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; } } package com.atguigu.controller.bean; /** * @author houChen * @date 2020/6/14 22:38 * @Description: */ public class Dog { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
3、在yml中編寫配置
person: last-name: zhangsan age: 19 boss: false birth: 2018/12/12 maps: {k1: v1,k2: v2} lists: - lisi - wangwu dog: name: uzi age: 20
4、在Person類上,按住 ctrl+shift+t ==> 快速創建 Person的測試類
/** * @author houChen * @date 2020/6/14 23:36 * @Description: Spring Boot的單元測試 * * 可以在測試期間很方便的 類似編碼一樣進行自動注入等功能 */ @RunWith(SpringRunner.class) @SpringBootTest public class PersonTest { @Autowired Person person; @Test public void testPerson(){ System.out.println(person); } }
5、結果