SpringBoot :yml配置文件绑定类

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 city;
    private Boolean hasHuzi;
    private Map 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 getCity() {
        return city;
    }

    public void setCity(List city) {
        this.city = city;
    }

    public Boolean getHasHuzi() {
        return hasHuzi;
    }

    public void setHasHuzi(Boolean hasHuzi) {
        this.hasHuzi = hasHuzi;
    }

    public Map getGuojia_jundui() {
        return guojia_jundui;
    }

    public void setGuojia_jundui(Map 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: 99


2,将类加入到spring容器中 @Component
3,使用注解绑定本类和配置文件  @ConfigurationProperties(prefix = "wujiang")
 *    使用@ConfigurationProperties
 *    加上依赖
 *    spring-boot-configuration-processor

 
        
            org.springframework.boot
            spring-boot-configuration-processor
            true
        


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

}

 

 

你可能感兴趣的:(java,springboot)