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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM