java 配置参数_给你的JAVA程序配置参数(Properties的使用)
我們在寫JAVA程序時,很多時候運行程序的參數(shù)是需要動態(tài)改變的
測試時一系列參數(shù),運行時一系列參數(shù)
又或者數(shù)據(jù)庫地址也需要配一套參數(shù),以方便今后的動態(tài)部署
這些變量的初始化,我們在寫小DEMO時完全可以寫死在JAVA文件中
但程序需要發(fā)布或者局部部署時,這些參數(shù)就需要脫離程序代碼了
我們有多種存放參數(shù)的方式,比如數(shù)據(jù)庫、XML文件又或者直接是txt文件
現(xiàn)在介紹一種使用JAVA,簡單方便的參數(shù)讀取方式
.properties文件,我們并不陌生,很多優(yōu)秀的框架中就能看到它的存在,比如Hibernate
在src文件目錄下,新建一個后綴為.properties的文件,用任意文本編輯器打開它,就可以使用鍵值對的方式設置您程序的運行參數(shù)了
類似于這樣
#wangqun fd60e46db0dc119cfea740c3375fd7c4
#toAccountId=fd60e46db0dc119cfea740c3375fd7c4
#huangshi 1645a78135328c4b
toAccountId=1645a78135328c4b
#tangwei 6c0f7514f4bd0016
#shixiaoping 98f30bad9e6789af
#toAccountId=6c0f7514f4bd0016
#toAccountId=6c0f7514f4bd0016,1645a78135328c4b,98f30bad9e6789af
#cron=0 32 8-11,14-20/1 * * ?cron=0/10 * * * * ?fileName=d\:/\u59DC\u5830\u5468\u79EF\u5206\u7BA1\u63A7\u53CA\u53CC\u767E\u5146\u8BAD\u7EC3\u84250830.xlsx
sheetName=\u6C47\u603B
fromIndex=0,1toIndex=48,12#fromIndex=1,4#toIndex=13,12dirPath=C:/apache-tomcat-8.0.28/webapps/test/urlPath=http://61.132.43.176:8081/test/
database_host=132.240.9.36database_port=1521database_user=jy
database_name=yxdb
database_pwd=OVQwu8QSm4CWktEZdnjtxg==sql_str=select *from hs_bb_rbb r order by r.no
modify_sheet=sheet1
modify_from=1,0time_cell=1,4
注意一下幾點:
一、用#號表示注釋,可以多錄入一些配置可能,運行時動態(tài)注釋或者打開,比較方便
二、.properties明文存儲,所以敏感字符需要加密,比如數(shù)據(jù)的密碼
三、遇到中文,是個棘手的問題,最簡單的方式是使用MyEclipse的properties文件編輯器來寫入,會自動將中文轉(zhuǎn)碼
四、所有參數(shù)只可以以字符串形式存儲,至于類型轉(zhuǎn)換,請在JAVA中解析完成
五、適用于只讀不寫的參數(shù)配置,如果程序運行過程中需要修改這些環(huán)境參數(shù),建議考慮數(shù)據(jù)庫讀寫方式,而不是properties
下面是JAVA程序,mian函數(shù)一開始就可以對這個properties文件進行讀取
public static void main(String[] args) throwsException{//讀取properties配置文件
Properties prop=newProperties();
prop.load(QuartzDemo.class.getResourceAsStream("/set.properties"));String cron=prop.getProperty("cron","0/10 * 8-7 * * ?");String fileName=prop.getProperty("fileName","d:/2014年1月營銷活動報表140116.xlsx");
String sheetName=prop.getProperty("sheetName", "支局視圖");
String dirPath=prop.getProperty("dirPath","C:/apache-tomcat-8.0.28/webapps/test/");
String urlPath=prop.getProperty("urlPath","http://61.132.43.176:8081/test/");
String fromIndexStr=prop.getProperty("fromIndex","0,0");
String toIndexStr=prop.getProperty("toIndex", "17,20");
String database_host=prop.getProperty("database_host","");
String database_port=prop.getProperty("database_port","");
String database_user=prop.getProperty("database_user","");
String database_name=prop.getProperty("database_name","");
String database_pwd=DESHelper.decrypt(prop.getProperty("database_pwd",""),"newflypig");
String sql_str=prop.getProperty("sql_str","");
String modify_sheet=prop.getProperty("modify_sheet","");
String modify_fromStr=prop.getProperty("modify_from","0,0");
String[] splitStr=fromIndexStr.split(",");int[] fromIndex={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
splitStr=toIndexStr.split(",");int[] toIndex={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
splitStr=modify_fromStr.split(",");int[] modify_from={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
}
Properties類提供了非常便捷的讀取properties文件的操作,還包括一些默認值的配置,再次需要注意的是,只能讀String,如果遇到其他數(shù)據(jù)類型,聰明的你一定知道怎樣用String類型轉(zhuǎn)換這些類型吧。
總結(jié)
以上是生活随笔為你收集整理的java 配置参数_给你的JAVA程序配置参数(Properties的使用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中valueerror怎么改
- 下一篇: JAVA实验报告九异常处理_Java课后