PropertyPlaceholderConfigurer实现配置文件读取

PropertyPlaceholderConfigurer实现配置文件读取

  PropertyPlaceholderConfigurer类的主要的用法是将BeanFactory里定义的内容放在一个.properties的文件中. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现. PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准java Properties文件中去. 这样的话,我只需要对properties文件进行修改,而不用对xml配置文件进行修改.

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;

/**
 * 配置读取工具
 * Created by zhengzhihust on 15/9/23.
 */
public class ExampleConfigure extends PropertyPlaceholderConfigurer {

    @Override
    protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException {
        super.processProperties(beanFactory, props);
        List<String> topics = new ArrayList<>();
        for (Map.Entry<Object, Object> entry : props.entrySet()) {
          //读取配置文件中的信息
        }
    }
}

  当然,spring.xml配置文件还需要引用一下资源文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.mogujie.com/schema/tesla http://www.mogujie.com/schema/tesla/tesla.xsd">

    <bean id="id" class="全限定类名">
        <property name="locations">
            <list>
                <value>classpath:conf/example.properties</value>
            </list>
        </property>
    </bean>

</beans>

原文参考:http://zhengzhihust.github.io/jekyll/update/2016/03/27/java-place-holder

posted on 2016-04-18 14:55  ericzheng  阅读(3599)  评论(0编辑  收藏  举报

导航