1,创建标准类,根据标准类的成员变量在配置文件yml中赋值 注意yml 文件utf8格式,map格式key为汉字
标准类:
package com.wjb.sbstuall.bean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; /** * 测试yml配置文件的类 * */ @Component //将类放入到spring容器中托管 @ConfigurationProperties(prefix = "wujiang") /** * @ConfigurationProperties(prefix = "wujiang") * @ConfigurationProperties 绑定标准类和配置文件中的对应数据,参数prefix = "wujiang",就会获取对应的数据 */ public class WuJiang { private String name; private int age; private List<String> city; private Boolean hasHuzi; private Map<String,String> guojia_jundui; private Horse horse; //无参构造器 public WuJiang() { } 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 List<String> getCity() { return city; } public void setCity(List<String> city) { this.city = city; } public Boolean getHasHuzi() { return hasHuzi; } public void setHasHuzi(Boolean hasHuzi) { this.hasHuzi = hasHuzi; } public Map<String, String> getGuojia_jundui() { return guojia_jundui; } public void setGuojia_jundui(Map<String, String> guojia_jundui) { this.guojia_jundui = guojia_jundui; } public Horse getHorse() { return horse; } public void setHorse(Horse horse) { this.horse = horse; } @Override public String toString() { return "WuJiang{" + "name='" + name + '\'' + ", age=" + age + ", city=" + city + ", hasHuzi=" + hasHuzi + ", guojia_jundui=" + guojia_jundui + ", horse=" + horse + '}'; } }
根据类成员创建yml配置文件
server: port: 8083 #debug: true #配置数据绑定标准类WuJiang,注意统一文件编码格式为Utf8 wujiang: name: 关羽_${random.uuid} age: 30 city: [徐州,荆州] hasHuzi: true # map格式的,汉字不能做key guojia_jundui: {han: bing,shu: 将军} horse: name: 赤兔马 sudu: 992,将类加入到spring容器中 @Component 3,使用注解绑定本类和配置文件 @ConfigurationProperties(prefix = "wujiang") * 使用@ConfigurationProperties * 加上依赖 * spring-boot-configuration-processor
<!--导入配置文件处理器,配置文件进行绑定就会有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>4,测试,使用自动装配注解,创建容器中的对象,且实现了配置文件中的数据和类成员自动转配
package com.wjb.sbstuall; import com.wjb.sbstuall.bean.WuJiang; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest //这是springboot自带的测试注解 class SbstuallApplicationTests { //创建测试对象,从容器中获取 @Autowired //将绑定配置和绑定容器中的类,自动装配 WuJiang wuJiang; @Test void contextLoads() { System.out.println(wuJiang); } }