springboot動態讀取properties 和yml的配置


 

properties使用PropertiesLoaderUtils,yml使用YamlPropertySourceLoader

application.properties

microsoft.definition.schema=https://websiate/....
microsoft.definition.action.input.NOTIFICATION.uri=https://websiate/....
microsoft.definition.action.input.DEVICE_CMD.uri=https://websiate/....

 

java讀取的代碼

String uri = "microsoft.definition.action.input." + actionsType + ".uri";
Properties properties = PropertiesLoaderUtils.loadAllProperties("application.yml");
                String ActionsInputUri = properties.getProperty(uri);
                definiteActionUriMap.put(actionsType, ActionsInputUri)

 

yml讀取的版本,且區分環境

application.yml

spring:
  application:
    name: codeconvert
  profiles:
    active: dev

application-dev.yml

microsoft:
  definition:
    schema: https://website/..
    action:
      input:
        NOTIFICATION:
          uri: https://website/..
        DEVICE_CMD:
          uri: https://website/..

 

application-test.yml

microsoft:
  definition:
    schema: https://website/test
    action:
      input:
        NOTIFICATION:
          uri: https://website/test
        DEVICE_CMD:
          uri: https://website/test

 

 @Value("${spring.profiles.active}")
    public String active;

//具體執行代碼
   String uri = "microsoft.definition.action.input." + actionsType + ".uri";
                Resource activeresource=new ClassPathResource(active==null?("application.yml"):"application-"+active+".yml");
                List<PropertySource<?>> load = new YamlPropertySourceLoader().load(uri, activeresource);
                String ActionsInputUri ="";
                if(load!=null&&!load.isEmpty()){
                     ActionsInputUri =  load.get(0).getProperty(uri)==null?"":load.get(0).getProperty(uri).toString();
                    definiteActionUriMap.put(actionsType, ActionsInputUri);
                }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM