package com.ucenter.utils;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.util.DefaultPropertiesPersister;
import org.springframework.util.PropertiesPersister;
/**
* Properties Util函数.
*
*
*/
public class PropertyUtils {
private static final String DEFAULT_ENCODING = "UTF-8";
//private static Logger logger = LoggerFactory.getLogger(PropertyUtils.class);
private static PropertiesPersister propertiesPersister = new DefaultPropertiesPersister();
/**
* 载入多个ClassPath中的properties文件, 相同的属性将会覆盖之前的载入.
* @see org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
*/
public static Properties loadProperties(String... locations) throws IOException {
Properties props = new Properties();
for (String location : locations) {
logger.debug("Loading properties file from classpath:" + location);
InputStream is = null;
try {
Resource resource = new ClassPathResource(location);
is = resource.getInputStream();
propertiesPersister.load(props, new InputStreamReader(is, DEFAULT_ENCODING));
} catch (IOException ex) {
logger.info("Could not load properties from classpath:" + location + ": " + ex.getMessage());
} finally {
if (is != null) {
is.close();
}
}
}
return props;
}
/**
* 获取通知管理员邮件和姓名,为空返回null
* @param filePath
* @return
* @throws IOException
*/
public static List<Map<String, String>> getNoticeEmail() throws IOException{
List<Map<String, String>> data=new ArrayList<Map<String,String>>();
Properties pro=loadProperties("sysnotice-email.properties");
String str=pro.getProperty("noticeEmail");
if(str.equals("")||null==str){
return null;
}
String[] arrStr=str.split(",");
for (String string : arrStr) {
Map<String, String> map=new HashMap<String,String>();
map.put("email",string.split("-")[0]);
map.put("name", string.split("-")[1]);
data.add(map);
}
return data;
}
/***
* 测试下方法
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// Properties pro=loadProperties("sysnotice-email.properties");
// String str=pro.getProperty("noticeEmail");
// System.err.println(str);
List<Map<String, String>> data=getNoticeEmail();
System.err.println(data.get(0).get("name"));
}
}
sysnotice-email.properties配置文件例子
noticeEmail=myt@XXXX.com-name,lh@XXXXXX-name