使用場景:
properties通過@Value注解方式在項目啟動後未順利加載到項目中,為解決此問題引入的
使用姿勢:
/**
* properties檔案擷取工具類
*/
public class PropertyUtil {
private static Properties props;
static {
loadProps();
}
synchronized static private void loadProps(){
System.out.println("開始加載proxy.properties檔案内容.......");
props = new Properties();
InputStream in = null;
try {
// 第一種,通過類加載器進行擷取properties檔案流-->
in = PropertyUtil.class.getClassLoader().getResourceAsStream("config/proxy.properties");
// 第二種,通過類進行擷取properties檔案流-->
//in = PropertyUtil.class.getResourceAsStream("/config/proxy.properties");
props.load(in);
} catch (FileNotFoundException e) {
System.out.println("proxy.properties檔案未找到");
} catch (IOException e) {
System.out.println("出現IOException");
} finally {
try {
if(null != in) {
in.close();
}
} catch (IOException e) {
System.out.println("proxy.properties檔案流關閉出現異常");
}
}
System.out.println("加載properties檔案内容完成...........");
System.out.println("properties檔案内容:" + props);
}
/**
* 根據key擷取配置檔案中的屬性
*/
public static String getProperty(String key){
if(null == props) {
loadProps();
}
return props.getProperty(key);
}
/**
* 根據key擷取配置檔案中的屬性,當為null時傳回指定的預設值
*/
public static String getProperty(String key, String defaultValue) {
if(null == props) {
loadProps();
}
return props.getProperty(key, defaultValue);
}
}