日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

java加載屬性配置properties文件的方法

瀏覽:167日期:2022-09-03 16:34:07

什么是properties文件

屬性配置文件,后綴名為 .properties 文件中嚴格按照key=value進行數(shù)據(jù)參數(shù)的填寫 中文參數(shù)值需要轉(zhuǎn)為Unicode編碼 不區(qū)分基本數(shù)據(jù)類型 一個編輯好的aaa.properties文件如下圖所示

username=rootflag=truexm =u4f60u597dage=18

為什么要使用properties文件

設(shè)想這么一種場景,當你項目發(fā)布上線后,比如連接mysql數(shù)據(jù)庫的端口號需要調(diào)整,難道需要重寫改代碼,打包,發(fā)布么?對于一些重要的參數(shù),需要人為經(jīng)常改變的參數(shù)使用一個properties文件來讀取,就不用修改代碼了,修改完參數(shù),重啟web服務(wù)器就能實現(xiàn)預(yù)期的需求,后面會介紹動態(tài)加載properties文件,甚至連重啟都不需要了。

使用java加載properties文件的兩種方式

使用類的加載器獲得輸入流加載文件

@Test /** * 使用類的加載器獲得文件輸入流 * @author CC * @date 2020年3月24日 */ public void demo1() throws IOException{ Properties prop =new Properties(); InputStream inputstream= TestProp.class.getClassLoader().getResourceAsStream('test/aaa.properties'); prop.load(inputstream); String username=prop.getProperty('username'); boolean flag=Boolean.valueOf(prop.getProperty('flag')); String xm=prop.getProperty('xm'); int age =Integer.valueOf(prop.getProperty('age')); System.out.println( username + ' ' +flag+' '+xm+' '+age); }

需要注意的點:

Properties 類是java.util包下的類,同時是Map的實現(xiàn)類,可以直接使用,有機會會介紹! 獲取參數(shù)prop.getProperty(“key”),這種獲得參數(shù)的value是字符串的形式,需要按需轉(zhuǎn)換 中文不需要特殊處理,Unicode編碼會轉(zhuǎn)化成中文

使用junit的單元測試效果如下:

root true 你好 123

getResourceAsStream()介紹

jdk中對其描述為:返回用于讀取指定資源的輸入流。

public InputStream getResourceAsStream(String name)

這個指定的資源路徑時怎么確定的呢?如果是java工程則是相對于src的路徑比如:是位于src的根目錄下有一個aaa.properties文件,增正確的訪問方式如下:

getResourceAsStream('aaa.properties');

比如:是位于src的根目錄下有一個test文件夾,里面有一個aaa.properties文件,增正確的訪問方式如下:

getResourceAsStream('test/aaa.properties');

使用文件輸入流加載文件

@Test /** * 使用標準的文件輸入流讀取文件 * @author CC * @date 2020年3月24日 */ public void demo2() throws IOException{ Properties prop =new Properties(); InputStream inputstream= new FileInputStream('src/test/aaa.properties'); prop.load(inputstream); String username=prop.getProperty('username'); boolean flag=Boolean.valueOf(prop.getProperty('flag')); String xm=prop.getProperty('xm'); int age =Integer.valueOf(prop.getProperty('age')); System.out.println( username + ' ' +flag+' '+xm+' '+age); }

使用文件輸入流的缺點是什么?

文件的相對路徑不好確定

一:如果是一個java工程,可以這么訪問:

new FileInputStream('src/test/aaa.properties');

二:如果是一個web工程,我們知道在Tomcat的webapps下的工程是沒有src路徑,所有的src下文件會被編譯后放在WEB-INF的classes文件夾下面,顯然上面這種訪問方式會報FileNotFound的異常

實現(xiàn)動態(tài)加載properties文件,不用重啟的那種

場景:已經(jīng)發(fā)布的web項目,我想修改參數(shù)又不想重啟怎么辦呢?傳統(tǒng)的上面使用類加載器獲得輸入流的方式,有以下缺點:修改了.properties后,即使重新執(zhí)行,讀入的仍為修改前的參數(shù)。此問題的原因在于ClassLoader.getResourceAsStream讀入后,會將.properties保存在緩存中,重新執(zhí)行時會從緩存中讀取,而不是再次讀取.properties文件

使用FileInputStream每次從磁盤中的絕對路徑獲取文件屬性,就能解決上述的缺點,但是需要怎樣獲得文件的絕對路徑?

Properties prop =new Properties(); //InputStream inputstream= ImgCheckServlet.class.getClassLoader().getResourceAsStream('aaa.properties'); //獲取絕對路徑 String path = Thread.currentThread().getContextClassLoader().getResource('').getPath(); System.out.println(path); InputStream inputstream= new FileInputStream(path+'/aaa.properties'); prop.load(inputstream); String username=prop.getProperty('username'); boolean flag=Boolean.valueOf(prop.getProperty('flag')); String xm=prop.getProperty('xm'); int age =Integer.valueOf(prop.getProperty('age')); System.out.println( username + ' ' +flag+' '+xm+' '+age);

可以在一個servlet中看看web工程下的調(diào)用效果:比如我們改動age=123,在控制臺可以看到效果如下,實時生效

root true 你好 123

到此這篇關(guān)于java加載屬性配置properties文件的方法的文章就介紹到這了,更多相關(guān)java properties配置內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蘑菇福利视频一区播放| 精品视频高潮| 激情六月综合| 91精品啪在线观看国产18 | 在线日韩中文| 美女网站一区| 午夜日韩福利| 国产精品嫩草99av在线| 亚洲第一精品影视| 不卡中文一二三区| 久久一二三区| 日本久久一区| 国产精品大片| 四季av一区二区凹凸精品| 精品国产欧美日韩一区二区三区| 国产一区一一区高清不卡| 中文字幕在线免费观看视频| 播放一区二区| 在线视频精品| 日韩和欧美一区二区| 国产日产一区| www在线观看黄色| 蜜桃视频欧美| 午夜在线精品| 日韩精品电影一区亚洲| 欧美激情麻豆| 日韩免费高清| 99精品99| 青青国产精品| 国产不卡人人| 国产精品日韩久久久| 奇米777国产一区国产二区| 美女视频网站久久| 国产专区一区| 日本va欧美va精品发布| 久久三级毛片| 激情综合网站| 日韩有吗在线观看| 精品资源在线| 99视频一区| 国产亚洲久久| 欧美sm一区| 热久久免费视频| 国产精品草草| 欧美日韩国产探花| 日本午夜精品一区二区三区电影| 国产成人久久精品麻豆二区| 国产二区精品| 国产伦精品一区二区三区千人斩| 狠狠躁少妇一区二区三区| 亚洲免费网址| 麻豆91精品视频| 狠狠色综合网| 国产精品一区二区三区四区在线观看 | 国产盗摄——sm在线视频| 欧美日韩国产探花| 国产精品欧美三级在线观看| 蜜桃精品在线| 日韩高清不卡一区二区| 久久精品青草| 久久国产欧美日韩精品| 免费看av不卡| 日本不卡在线视频| 亚洲第一精品影视| 国产另类在线| 久久国产66| 日韩成人综合| 国产精品亲子伦av一区二区三区| 国产综合色产| 欧美国产亚洲精品| 美女国产一区| 日韩欧美看国产| 欧美另类中文字幕| 在线国产一区二区| 久久精品国产亚洲aⅴ| 美女久久一区| 岛国精品一区| 日韩成人午夜精品| 婷婷综合激情| 久久久久久久欧美精品| 成人亚洲一区| 日本在线不卡视频| 亚洲第一精品影视| 老色鬼精品视频在线观看播放| 久久一二三区| 色婷婷精品视频| 美女精品一区二区| 日本亚洲不卡| 六月天综合网| 国产精品99免费看| 国产精品专区免费| 国产精品1luya在线播放| 亚洲精一区二区三区| 99久久99视频只有精品| 精品精品久久| 国产欧美69| 久久亚洲二区| 蜜桃tv一区二区三区| av资源新版天堂在线| 久久99精品久久久野外观看| 日韩在线成人| 国产精品日韩| 激情五月综合| 999久久久免费精品国产| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 亚洲最大av| 欧美专区18| 国产一区导航| 亚州av乱码久久精品蜜桃| 成人精品中文字幕| 欧美激情另类| 久久wwww| 国产精品免费精品自在线观看| 亚洲97av| 日韩精品乱码av一区二区| 亚洲精品人人| 日本亚州欧洲精品不卡| 一本综合精品| 日韩欧美精品一区二区综合视频| 六月丁香综合| 每日更新成人在线视频| 麻豆亚洲精品| 日韩精品一级中文字幕精品视频免费观看 | 亚洲精品亚洲人成在线观看| 一区二区国产在线| 亚洲精品第一| 日韩1区2区日韩1区2区| 国产亚洲一区二区三区不卡| 日本午夜精品久久久久| 国产视频一区二| 免费视频一区二区三区在线观看| 精品国产一区二区三区2021| 成人午夜在线| 国产suv精品一区| 国产高潮在线| 亚洲午夜91| 免费人成在线不卡| 亚欧洲精品视频在线观看| 91精品福利观看| 久久xxx视频| 日韩免费福利视频| 黄色在线一区| 日韩 欧美一区二区三区| 国产伦理久久久久久妇女| 久久天堂影院| 少妇久久久久| 香蕉久久国产| 日本午夜免费一区二区| 国产精品亚洲四区在线观看 | 图片区亚洲欧美小说区| 久久国产精品毛片| 91亚洲精品在看在线观看高清| 国产美女撒尿一区二区| 国产一区二区三区探花| 激情久久婷婷| 综合日韩在线| 国产精品sm| 日韩在线第七页| 美女久久网站| 欧美精品成人| 三级小说欧洲区亚洲区| 亚洲一区二区毛片| 欧美天堂一区二区| 福利一区二区免费视频| 欧美日韩国产免费观看| 日韩动漫一区| 91日韩欧美| 石原莉奈在线亚洲三区| 国产精品一页| 1024精品一区二区三区| 午夜性色一区二区三区免费视频| 卡一卡二国产精品| 日韩一区二区免费看| 国产精品宾馆| 亚洲精品在线观看91| 91在线成人| 成人羞羞在线观看网站| 日本不卡在线视频| 黑人精品一区| 亚洲精品精选| 都市激情国产精品| 亚洲欧美日本国产| 亚洲国产欧美日本视频| 蜜桃一区二区三区在线| 精品一区二区三区的国产在线观看 | 蜜臀久久精品| 免费观看久久久4p| 国产精品成久久久久| 久久午夜精品一区二区| 精品一区视频| 亚洲综合中文| 色黄视频在线观看| 日韩欧美中文字幕一区二区三区 | 欧美综合社区国产| 91精品国产乱码久久久久久久| 91嫩草精品| 亚洲经典在线| 欧美xxxx性| 亚洲综合婷婷| 99久久www免费|