在实际开发中,可能需要拿到某个properties的值,如果不是经常使用,可以直接用
inputStream=ZHRTActivityUrlUtils.class.getClassLoader().getResourceAsStream(ACTIVITY_FILENAME);
properties.load(inputStream);
但是比如把URL连接存到properties文件的时候,需要经常读取,那么这么做并不合适,我们可以把properties的值存到url存到类变量之中以方便调用
zhrtActivityUrl.properties文件
zhrt.baseUrl=http://localhost:8080/zhrtChinaWeb
zhrt.url.findSanPost=/admin/test/findSanPost
用来存储类变量的类
package com.wangzhixuan.commons.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ZHRTActivityUrlUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(ZHRTActivityUrlUtils.class);
private static final String ACTIVITY_FILENAME = "zhrtActivityUrl.properties";
public static String baseUrl ;
//test
public static String findSanPost;
static{
initServiceVar();
}
private static void initServiceVar() {
Properties properties=new Properties();
InputStream inputStream=null;
try {
inputStream=ZHRTActivityUrlUtils.class.getClassLoader().getResourceAsStream(ACTIVITY_FILENAME);
properties.load(inputStream);
Set<Object> proKeySet= properties.keySet();
Iterator<Object> it= proKeySet.iterator();
while(it.hasNext()){
String key= it.next().toString();
String val= properties.getProperty(key);
setPorperty(key,val);
}
} catch (IOException e) {
e.printStackTrace();
LOGGER.error("读取资源文件"+ACTIVITY_FILENAME+"失败", e);
throw new RuntimeException("读取资源文件"+ACTIVITY_FILENAME+"失败");
}finally{
if(inputStream!=null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
LOGGER.error("关闭流失败", e);
}
}
}
}
private static void setPorperty(String key, String val) {
if("zhrt.baseUrl".equals(key)){
baseUrl=val;
}else if("zhrt.url.findSanPost".equals(key)){
findSanPost=val;
}
}
}