1. 程式人生 > >spring boot 程式碼、註解配置獲取yml、properties檔案中的map即鍵值對

spring boot 程式碼、註解配置獲取yml、properties檔案中的map即鍵值對

一、yml獲取自定義鍵值對

yml中的鍵值對

test:
  map:
    key1: value1
    key2: value2
    key3: value3
pom中的依賴配置
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

程式碼:

@Component
@ConfigurationProperties(prefix = "test")
public class MyConfiguration {

    private String name;

    private Map map = new HashMap();

    public Map getMap() {
        return map;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

然後在呼叫層,如controller注入即可測試:

@Autowired
MyConfiguration myConfiguration;

注意:該例項中的yml檔案預設是:application.yml檔案。也就是說,鍵值對要寫在application.yml檔案中;

二、properties 獲取自定義鍵值對

config.properties 中的鍵值對:

test.map.key1=value1
test.map.key2=value2
test.map.key3=value3

pom中無依賴配置

程式碼:

@Component
@Configuration
@PropertySource(value = {"classpath:/config.properties"}, encoding = "utf-8")
@ConfigurationProperties(prefix = "test")
public class MyConfiguration {

    private String name;

    private Map map = new HashMap();

    public Map getMap() {
        return map;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

然後在呼叫層,如controller注入即可測試:

@Autowired
MyConfiguration myConfiguration;

以上例項只是針對於map(鍵值對)的獲取,相對於讀取檔案,解析檔案流來說,方便了許多。希望可以用到時幫到看見的你,如有更好策略,可以留言,謝謝!