您的位置:首页 > 编程语言 > Java开发

Spring中PropertyPlaceholderConfigurer的用法

2017-12-15 17:18 429 查看
  项目用到加载配置文件,首先想到了PropertyPlaceholderConfigurer类,(环境为:sping+spingMVC)现在就把详细步骤记录如下,需要用到的朋友,可以参考,有什么错误的地方,欢迎指正。

1:创建配置文件,并配置属性。

2:在spirngMVC配置文件中,添加如下配置。

<!-- 自定义配置文件 -->

    <bean id="propertyConfigurer" class="com.tb.util.CustomizedPropertyConfigurer">

        <property name="locations">

            <list>

                <value>classpath:context/tb.properties</value>

            </list>

        </property>

    </bean>

3.编写工具类,并继承PropertyPlaceholderConfigurer类,重写processProperties方法。(PropertyPlaceholderConfigurer起的作用就是将占位符指向的数据库配置信息放在bean中定义)
import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

import org.springframework.beans.factory.config.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);

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: