xml 加載多個properties文件

xml 配置項:html

<bean id="propertyConfigurer" class="com.boc.icms.archive.util.ExPropertyPlaceholderConfigurer">
		<property name="locations">
			 <list>  
              <value>xdb.properties</value>  
              <value>offline.properties</value>  
            </list>
		</property>
	</bean>

  

java代碼:java

public class ExPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {

    private final DefaultResourceLoader defaultResourceLoader;
    private final String FILE_SEPERATOR = System.getProperty("file.separator");
    private static Logger logger = Logger.getLogger(ExPropertyPlaceholderConfigurer.class);
    
    public ExPropertyPlaceholderConfigurer(){
        defaultResourceLoader=new FileSystemResourceLoader();
    }
    
    private Resource getResource(String fileName){
        try{
            String filePath = System.getProperty(PubConst.SERVER_CFG_DIR)+FILE_SEPERATOR+fileName;
            return defaultResourceLoader.getResource(filePath);
        }catch(Exception e){
            logger.error("get["+fileName+"]Resource Exception",e);
            return null;
        }
    }
    
    public void setLocation(String location){
        super.setLocation(getResource(location));
    }
    
    /**
     * 同時加載多個properties
     *@auther zhangcd
     *@date 2017年5月8日
     *@param locations
     */
    public void setLocations(List<String> locations){
        if(locations != null && !locations.isEmpty()){
            int size = locations.size();
            Resource[] res = new Resource[size];
            for(int i = 0;i<size;i++){
                res[i]= getResource(locations.get(i));
            }
            super.setLocations(res);
        }
    }
    
}
相關文章
相關標籤/搜索