xml 加载多个properties文件

时间:2021-05-22 10:47:32

xml 配置项:

<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代码:

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);
}
} }