一:首先创建一个属性文件xxx.properties

二:然后自定义一个属性加载类工具类,必须要extends PropertyPlaceholderConfigurer类,(实际是对PropertyPlaceholderConfigurer类的一个扩展)

public class CustomizedPropertyConfigurer extends PropertyPlaceholderConfigurer {
 
    private static Map<String, Object> ctxPropertiesMap;
 
    @Override
    protected void processProperties(
            ConfigurableListableBeanFactory beanFactoryToProcess,
            Properties props) throws BeansException {
        super.processProperties(beanFactoryToProcess, props);
        ctxPropertiesMap = new HashMap<String, Object>();
        for (Object key : props.keySet()) {
            String keyStr = key.toString();
            String value = props.getProperty(keyStr);
            ctxPropertiesMap.put(keyStr, value);
        }
    }
 
    public static Object getContextProperty(String name) {
        return ctxPropertiesMap.get(name);
    }
 
    public static Object setContextProperty(String name, Object value) {
        return ctxPropertiesMap.put(name, value);
    }
 
}
三:然后再spring文件中配置如下

<bean id="propertyConfigurer"
      class="com.ljzforum.platform.util.CustomizedPropertyConfigurer">
    <property name="locations">
        <list>
            <value>classpath:context/xxx.properties</value>
        </list>
    </property>
</bean> 
四:最后就是怎么使用了,代码如下

String appId = (String) CustomizedPropertyConfigurer.getContextProperty("app_id");
 
        String app_secret =(String) CustomizedPropertyConfigurer.getContextProperty("app_secret")

Spring框架利用PropertyPlaceholderConfigurer初始化加载多properties文件相关推荐

  1. springboot 加载一个properties文件转换为对象、List和Map数据结构

    springboot 加载一个properties文件转换为对象.List和Map数据结构 一.springboot 加载一个properties文件转换为对象 1.1.配置文件-blog.prope ...

  2. 利用firebug动态加载online js文件

    为什么80%的码农都做不了架构师?>>>    我们在对网页进行调试时,可以利用firebug的命令行,对网页进行脚本的调试.对于原生js当然没有问题,可是,有时候我们想要使用js类 ...

  3. Spring框架——加载属性(properties)文件

    使用属性文件的好处 有效的减少硬编码(将配置信息直接写入Java代码中) 当应用程序的运行环境发生改变时,只需要修改属性文件,而不需要改变源码.提高了运维人员操作的便利性 加载属性文件的方式 使用注解 ...

  4. 加密Spring加载的Properties文件

    目标:要加密spring的jdbc配置文件的密码口令. 实现思路:重写加载器的方法,做到偷梁换柱,在真正使用配置之前完成解密. 1.扩展 package com.lavasoft.freamwork. ...

  5. 解决Idea中maven项目druid连接池加载druid.properties文件时报 inStream parameter is null异常(原因有待考证)

    我认为应该是没有把druid.properties文件加载到输入流中. 原代码是 InputStream is = JDBCUtils.class.getClassLoader().getResour ...

  6. Spring初始化加载流程分析

    关于Spring框架的介绍,网上有很多非常好的详细的文章,如果在本篇博客中没有了解到自己想要的东西,个人能力有限,只能使用博客记录一下自己目前了解的知识点了! 本篇博客将大致介绍一下Spring框架的 ...

  7. Spring Cloud Gateway系列【4】初始化加载流程源码解析

    文章目录 核心源码 Route类 AsyncPredicate接口 ServerWebExchange 接口 GatewayFilter RouteLocator RouteDefinitionLoc ...

  8. tomcat + spring mvc原理(二):tomcat容器初始化加载和启动

    tomcat + spring mvc原理(二):tomcat容器动态加载 容器通用生命周期标准 容器通用生命周期的实现 生命周期状态监听器的管理实现 生命周期方法实现 宏观来看各种容器生命周期的实际 ...

  9. 006-spring cloud gateway-GatewayAutoConfiguration核心配置-GatewayProperties初始化加载、Route初始化加载...

    一.GatewayProperties 1.1.在GatewayAutoConfiguration中加载 在Spring-Cloud-Gateway初始化时,同时GatewayAutoConfigur ...

  10. Android利用Volley异步加载(JSON和图片)完整示例

    android的json解析部分都在包org.json下,主要有以下几个类: JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value) ...

最新文章

  1. ISA2006标准版安装及无人值守安装
  2. find查找文件的时候排除某个或几个文件或目录
  3. 关于asp.net中链接数据库的问题
  4. 生产上oracle扩展表空间,oracle基于裸设备(raw device)扩充表空间
  5. 大年初一,磊哥给大家发大红包啦!
  6. 容器编排技术 -- Kubernetes kubectl create secret docker-registry 命令详解
  7. 数据结构值图的最小生成树
  8. (三)使用自动编码器进行深度伪造
  9. Algorithm:字典序最小问题
  10. 【安卓笔记】—— 页面导航 Navigation(3)
  11. python 生成器 迭代器 区别_Python生成器和迭代器的区别
  12. [渝粤教育] 西南科技大学 机械设计基础 在线考试复习资料(1)
  13. 数值积分方法的c语言实现,编程实现数值积分的几种--方法 c语言.doc
  14. yum安装mysql和mysql源,配置mysql
  15. python-expected an indented block问题解决
  16. roundcube邮箱手机端_企业邮箱申请后如何登录
  17. 自己做量化交易软件(40)小白量化实战13--Alpha101及自编因子公式
  18. [相机原理]单反与手机是如何实现对焦的?——反差对焦的原理
  19. 用onetab插件管理chrome的tab页,解决.crx安装时显示invalid的问题
  20. MATLAB SIMULINK电力电子仿真

热门文章

  1. window下安装mysql
  2. 1.1 项目过程中遇到date类型插入数据库的问题及解决方法
  3. [HDU1754]I Hate It线段树裸题
  4. 在Ubuntu下搭建Spark群集
  5. iOS安全攻防(七)使用iOSOpenDev开发SpringBoard的Tweat
  6. 国外的程序员都是什么样的状态?硅谷程序员:不加班,不穿女装
  7. R语言实现46种距离算法
  8. [翻译]WPF控件库 MaterialDesignInXamlToolkit (2) Brush Names
  9. Selenium 显示等待和隐式等待
  10. Broadcast receiver之我见