1. 餓漢式
/**
* 單列設(shè)計模式 餓漢式
* @author chenPeng
* @version 1.0.0
* @ClassName PropertiesHolder.java
* @Description TODO
* @createTime 2019年01月28日 19:23:00
*/
public class PropertiesHolderHunger {
private static Properties pros = new Properties();
static {
try {
pros.load(PropertiesHolderHunger.class.getClassLoader().getResourceAsStream(
"config.properties"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static Properties getPros() {
return pros;
}
@Test
public void proTest() throws IOException {
Properties pros = getPros();
String temp = pros.getProperty("LOG_SOURCE_DIR");
System.out.println(temp);
}
}
懶漢式
/**
* 單列模式:懶漢式——并考慮線程安全
* @author chenPeng
* @version 1.0.0
* @ClassName PropertiesHolderLaze.java
* @Description TODO
* @createTime 2019年01月28日 19:47:00
*/
public class PropertiesHolderLaze {
private static Properties pros = null;
public static Properties getPros() throws IOException {
if (pros==null){
synchronized (PropertiesHolderLaze.class){
if (pros==null){
pros = new Properties();
pros.load(PropertiesHolderLaze.class.getClassLoader().getResourceAsStream(
"config.properties"));
}
}
}
return pros;
}
}
解釋
- 獲取配置文件的輸入流
PropertiesHolderLaze.class.getClassLoader().getResourceAsStream("config.properties")
- synchronized為鎖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。