原因:當(dāng)多個(gè)Java從一個(gè)properties文件中讀取某個(gè)屬性的值時(shí)业舍,菜鳥(niǎo)就會(huì)在每個(gè)java類(lèi)里都寫(xiě)一次取值的過(guò)程帽氓,這樣導(dǎo)致的后果:假如我要修個(gè)文件的路徑或者這個(gè)屬性的名稱暮芭,那么我會(huì)遇到一些麻煩猪贪,要一個(gè)個(gè)java文件去找并修改诸迟,很容易導(dǎo)致有一些類(lèi)沒(méi)有被修改而出錯(cuò)塔鳍,無(wú)疑會(huì)增加了自己的工作量。
解決方案:假如我用一個(gè)類(lèi)專門(mén)負(fù)責(zé)從properties文件取得值拜隧,那么properties有什么改動(dòng)宿百,我只要修改這個(gè)類(lèi)就行了,這樣簡(jiǎn)單洪添,快捷垦页,高效。簡(jiǎn)單案例如下
1.setting.properties文件有如下屬性
username=test
password=123
2.Setting.java類(lèi)負(fù)責(zé)從屬性文件讀取屬性的值
importjava.util.ResourceBundle;
publicclassSetting?{
publicstaticjava.lang.String?getValue(java.lang.String?key)?{
//?TODO:?implement
returngetPropertyFromFile("dna.conf.setting",?key);//記得修改文件路徑
}
publicstaticString?getPropertyFromFile(String?filename,?String?key)?{
try{
ResourceBundle?rb?=?ResourceBundle.getBundle(filename);
returnrb.getString(key).trim();
}catch(Exception?e)?{
//e.printStackTrace();
return"";
}
}
}
3.Constants.java類(lèi)負(fù)責(zé)保存從屬性文件取得的屬性值,保存為常量
publicclassConstants?{
publicfinalstaticString?USERNAME=?Setting.getValue("username");
publicfinalstaticString?PASSWORD?=?Setting.getValue("password");
}
4.在java類(lèi)中使用方法如下
publicclassTest{
publicstaticvoidmain(String[]?args)?{
String?username=Constants.USERNAME;
System.out.pring(username);
}
}