36 SpringBoot 在系统配置文件中动态加载配置

1. 动态加载配置

package com.thc.rcm.system.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.PropertiesPropertySource;
import org.springframework.stereotype.Component;

import java.util.Properties;

/**
 * @author shizhanwei
 * 1.代替yml文件中原服务地址的配置,其它服务名称变动需修改这里
 * 2.yml文件中的下面配置可以删除了
 * 例如:
 * feign:
 *   base: /
 *   rcm: rcm/
 *
 */
@Component
public class AppEnvPostProcessor implements EnvironmentPostProcessor {

    @Override
    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
        MutablePropertySources propertySources = environment.getPropertySources();
        Properties properties = new Properties();
        properties.setProperty("feign.base","/");
        properties.setProperty("feign.rcm","rcm/");
        properties.setProperty("feign.warehouse","warehouse/");
        properties.setProperty("feign.sob","sob/");
        properties.setProperty("feign.phr","thc-phr/");
        properties.setProperty("feign.passport","c-union/");
        properties.setProperty("feign.market","market/");
        properties.setProperty("feign.mall","c-mall/");
        properties.setProperty("feign.cunion","c-union/");
        properties.setProperty("feign.insurance","insurance/");
        properties.setProperty("feign.permission","thc-platform-core/");
        properties.setProperty("feign.msg","msg/");
        properties.setProperty("feign.epay","epay/");
        properties.setProperty("feign.arrange","arrange/");
        properties.setProperty("feign.medicalrecord","medical-record/");
        properties.setProperty("feign.workbench","workbench/");
        properties.setProperty("feign.pricemanage","pricemanage/");
        properties.setProperty("feign.process-engine","process-engine/");
        propertySources.addLast(new PropertiesPropertySource("thc_apps",properties));
    }
}

2. 在代码中引用:

    @Autowired
    Environment env;

    @PostMapping(value = "/testEnv")
    public Object testEnv() {
        return env.getProperty("feign.pricemanage");
    }

原文地址:https://www.cnblogs.com/guchunchao/p/11785182.html

时间: 2024-10-10 07:58:21

36 SpringBoot 在系统配置文件中动态加载配置的相关文章

Java中动态加载jar文件和class文件

概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下的jar文件以及classes目录下的class文件,另外像spring这类框架,也可以根据指定的路径扫描并加载指定的类文件,这个技术可以实现一个容器,容纳各类不同的子应用. Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,不像C加载动态链接库只要一个文件名就可以搞定,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 动态加载jar文件 // 系统类库路径 File libPath =

zTree 从数据库中动态加载树形菜单

这几天做动态菜单用到了这个插件,目前用的很广泛的一个开源框架,最新发布的QUI框架就是用这个插件开发的菜单部分,因此还是很值得深入研究和学习,通过使用感觉功能很丰富,好多函数不用自己开发和编写,官网上有很详尽的API可以参考,用着算顺手但学习使用的过程中也遇到了一些困难,听过反复测试和查资料都理解了,但也在思考一个问题,怎么样才能使得最快的时间从接触一个新东西到灵活掌握的程度? 这个不仅仅是一个树形结构的菜单,每个节点左边可以有一个复选框,看了看也挺简单的,只需要在setting里面配置一个ch

在ASP.NET中动态加载内容(用户控件和模板)

在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<table width=100%><tr><td width=100% colspan=2 runat=server id=ContainerTop></td></tr><tr><td width=30% runat=server id=Con

在MVC应用程序中动态加载PartialView

有时候,我们不太想把PartialView直接Render在Html上,而是使用jQuery来动态加载,或是某一个事件来加载. 为了演示与做好这个练习,我们先在Views目录下的Home下创建_Partial1.cshtml部分视图,视图内容任你自定义,Insus.NET在本例中只让其显示一些文字与一张图片: 接下来,我们需要建立一个ActionResult()方法,在Controllers目录之下,打开HomeController.cs: 再去Views\Home目录,创建一个DynamicL

ASP.NET中动态加载母版页

在项目开发中,有时应用程序希望能够根据特定的情形来动态地设置母版页.需要动态加载母版页的情形有两种:允许用户使用不同的母版页定制外观呈现:当与其他公司合作,需要调整页面与合作伙伴相同的外观. 开发人员可以通过Page类提供的MasterPageFile属性来为内容页设置母版页.母版页与内容页在页声明周期的早期进行合并.因此不能直接在内容页的Page_Load事件中设置母版页.而需要在Page.PreInit事件中动态加载母版页(Page.PreInit是页执行周期中的第一个事件). [示例]下面

C#中动态加载和卸载DLL

在C++中加载和卸载DLL是一件很容易的事,LoadLibrary和FreeLibrary让你能够轻易的在程序中加载DLL,然后在任何地方 卸载.在C#中我们也能使用Assembly.LoadFile实现动态加载DLL,但是当你试图卸载时,你会很惊讶的发现Assembly没有提供任何 卸载的方法.这是由于托管代码的自动垃圾回收机制会做这件事情,所以C#不提供释放资源的函数,一切由垃圾回收来做.  这引发了一个问题,用Assembly加载的DLL可能只在程序结束的时候才会被释放,这也意味着在程序运

Java_Java中动态加载jar文件和class文件

转自:http://blog.csdn.net/mousebaby808/article/details/31788325 概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下的jar文件以及classes目录下的class文件,另外像spring这类框架,也可以根据指定的路径扫描并加载指定的类文件,这个技术可以实现一个容器,容纳各类不同的子应用. Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,不像C加载动态链接库只要一个文件名就可以搞定,但JDK仍

[转载] Java中动态加载jar文件和class文件

转载自http://blog.csdn.net/mousebaby808/article/details/31788325 概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下的jar文件以及classes目录下的class文件,另外像spring这类框架,也可以根据指定的路径扫描并加载指定的类文件,这个技术可以实现一个容器,容纳各类不同的子应用. Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,不像C加载动态链接库只要一个文件名就可以搞定,但JDK仍

unity3D中动态加载物体的常用的方法

1.用Resources.Load():参数为路径,需要在Assets文件夹中创建Resources文件夹,通过路径去查找,实例化并加入到内存中去,通过Instantiate动态加载的方法来实现物体场景的加载: 2.使用AssetBundle打包预设或者场景可以将与其相关的所有资源打包,这样很好地解决资源的依赖问题 要先打包资源: using UnityEngine;using System.Collections;using UnityEditor;using System.IO;public