zoukankan      html  css  js  c++  java
  • 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);
                    }
  • 相关阅读:
    MySQL教程详解之存储引擎介绍及默认引擎设置
    最简单MySQL教程详解(基础篇)之多表联合查询
    Postfix常用命令和邮件队列管理(queue)
    备份数据库
    Docker基本命令
    ASCII码表
    mysql基本了解
    顺序对列,环形队列,反向链式栈
    进制的标识符
    多个线程的时间同步
  • 原文地址:https://www.cnblogs.com/zhian/p/14658691.html
Copyright © 2011-2022 走看看