编码方式获取Spring中PropertyPlaceholderConfigurer的属性
来源:互联网 发布:qq账号解封软件 编辑:程序博客网 时间:2024/06/05 09:48
参考原文:http://antlove.iteye.com/blog/1820078
本文只是修改了一下适用于spring web项目
可以在程序中通过属性名获取到在属性文件定义的属性值。
package com.tqmall.elasticsearch.util;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanFactoryPostProcessor;import org.springframework.beans.factory.config.PropertyResourceConfigurer;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.context.support.AbstractApplicationContext;import org.springframework.core.io.support.PropertiesLoaderSupport;import org.springframework.stereotype.Component;import java.lang.reflect.Method;import java.util.Properties;/** * Created by 刘一波 on 15/8/5. * E-Mail:yibo.liu@tqmall.com */@Componentpublic class SpringPropertyResourceReader implements ApplicationContextAware { private static ApplicationContext applicationContext; private static AbstractApplicationContext abstractContext; private static Properties properties = new Properties(); private static void init() { try { // get the names of BeanFactoryPostProcessor String[] postProcessorNames = abstractContext.getBeanNamesForType(BeanFactoryPostProcessor.class, true, true); for (String ppName : postProcessorNames) { // get the specified BeanFactoryPostProcessor BeanFactoryPostProcessor beanProcessor = abstractContext.getBean(ppName, BeanFactoryPostProcessor.class); // check whether the beanFactoryPostProcessor is // instance of the PropertyResourceConfigurer // if it is yes then do the process otherwise continue if (beanProcessor instanceof PropertyResourceConfigurer) { PropertyResourceConfigurer propertyResourceConfigurer = (PropertyResourceConfigurer) beanProcessor; // get the method mergeProperties // in class PropertiesLoaderSupport Method mergeProperties = PropertiesLoaderSupport.class. getDeclaredMethod("mergeProperties"); // get the props mergeProperties.setAccessible(true); Properties props = (Properties) mergeProperties. invoke(propertyResourceConfigurer); // get the method convertProperties // in class PropertyResourceConfigurer Method convertProperties = PropertyResourceConfigurer.class. getDeclaredMethod("convertProperties", Properties.class); // convert properties convertProperties.setAccessible(true); convertProperties.invoke(propertyResourceConfigurer, props); properties.putAll(props); } } } catch (Exception e) { throw new RuntimeException(e); } } public static String getProperty(String propertyName) { return properties.getProperty(propertyName); } @Override public void setApplicationContext(ApplicationContext arg0) throws BeansException { applicationContext = arg0; abstractContext = (AbstractApplicationContext) applicationContext; init(); }}
0 0
- 编码方式获取Spring中PropertyPlaceholderConfigurer的属性
- PropertyPlaceholderConfigurer在spring获取属性文件
- Spring PropertyPlaceholderConfigurer获取属性文件值
- Spring 中 PropertyPlaceholderConfigurer 的使用
- Spring中PropertyPlaceholderConfigurer的使用
- Spring中PropertyPlaceholderConfigurer的使用
- Spring中PropertyPlaceholderConfigurer的使用
- Spring中PropertyPlaceholderConfigurer的使用
- Spring中PropertyPlaceholderConfigurer的使用
- Spring中PropertyPlaceholderConfigurer的使用
- spring中PropertyPlaceholderConfigurer的使用
- Spring中PropertyPlaceholderConfigurer的使用
- Spring中PropertyPlaceholderConfigurer的用法
- Spring中PropertyPlaceholderConfigurer的用法
- Spring属性占位符PropertyPlaceholderConfigurer的使用
- Spring属性占位符PropertyPlaceholderConfigurer的使用
- Spring属性占位符PropertyPlaceholderConfigurer的使用
- Spring属性占位符PropertyPlaceholderConfigurer的使用 ${}
- Android中OnkeyDown事件和OnBackPressed方法区别、兼容、使用
- 对inverse和cascade的简单理解
- Exercise——CopyComplexList
- Java回调机制解析
- Android 机顶盒应用开发经验(1)
- 编码方式获取Spring中PropertyPlaceholderConfigurer的属性
- 结构体基本操作
- ViewPager 详解(四)----自主实现滑动指示条
- 喷水装置(一)
- android studio 下载及配置 Genymotion模拟器
- FileOutputStream中的 3种write方式
- POJ2976(01分数规划+二分)
- Android问题集锦之四十四:Android Studio 1.3 代理问题
- ViewPager 详解(五)-----使用Fragment实现ViewPager滑动