摘要:實現(xiàn)配置文件變更監(jiān)聽讀取的配置文件,在資源文件夾下就行監(jiān)聽所在目錄下的文件修改刪除事件啟動一個線程監(jiān)聽內(nèi)容變化,并重新載入配置設(shè)置成守護(hù)進(jìn)程當(dāng)服務(wù)器進(jìn)程關(guān)閉時把監(jiān)聽線程掉
/** * WatchService實現(xiàn)配置文件變更監(jiān)聽 * */ public class WatchProperties { private static WatchService watchService; private static String filename; private static Properties properties; private static ClassPathResource resource; static { try { //讀取的配置文件,在資源文件夾下就行 filename = "sysconst.properties"; resource = new ClassPathResource(filename); //監(jiān)聽filename所在目錄下的文件修改、刪除事件 watchService = FileSystems.getDefault().newWatchService(); Paths.get(resource.getFile().getParent()).register(watchService, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE); properties = PropertiesLoaderUtils.loadProperties(resource); } catch(IOException e) { e.printStackTrace(); } //啟動一個線程監(jiān)聽內(nèi)容變化,并重新載入配置 Thread watchThread = new Thread() { public void run() { while(true) { try { WatchKey watchKey = watchService.take(); for (WatchEvent event : watchKey.pollEvents()) { if (Objects.equals(event.context().toString(), filename)){ properties = PropertiesLoaderUtils.loadProperties (resource); break; } watchKey.reset(); } } catch (Exception e) { } } }; }; //設(shè)置成守護(hù)進(jìn)程 watchThread.setDaemon(true); watchThread.start(); //當(dāng)服務(wù)器進(jìn)程關(guān)閉時把監(jiān)聽線程close掉 Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { try{ watchService.close(); } catch(IOException e) { e.printStackTrace(); } } }); } public static String get(String key){ return properties.getProperty(key, ""); } public static void main(String[] args) { System.out.println(">>>>>>>>>>>>>>" + get("OSS_OUT_OF_DATE")); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/69976.html
摘要:緩沖區(qū)的容量不可能為負(fù)值,創(chuàng)建后不能改變界限界限第一個不應(yīng)該被讀寫或者寫入的緩沖區(qū)位置索引。當(dāng)使用從中讀取數(shù)據(jù)時,的值恰好等于已經(jīng)讀到了多少數(shù)據(jù)。 NIO:New IO Java新IO概述 新IO采用內(nèi)存映射文件的方式來處理輸入/輸出,新IO文件或文件的一段區(qū)域映射到內(nèi)存中,這樣就可以訪問內(nèi)存一樣來訪問文件了(這種方式模擬了操作系統(tǒng)上的虛擬內(nèi)存的概念),通過這種方式來進(jìn)行輸入/輸出比傳...
摘要:項目地址,另外知乎同名文章也是我發(fā)布的,大家可以多多關(guān)注首先觀察控制臺其次再看本地壁紙庫現(xiàn)在進(jìn)入正題,這個小項目用到了具體版本見,另外還用到了中的線程池阻塞隊列生產(chǎn)消費(fèi)者模式文件監(jiān)聽服務(wù),所以至少要求版本為或者以上項目分為個類和一個方法入 項目地址,另外知乎同名文章也是我發(fā)布的,大家可以多多關(guān)注 首先觀察控制臺showImg(https://segmentfault.com/img/b...
我不知道現(xiàn)在有多少人在用網(wǎng)盤搜索引擎,但就去轉(zhuǎn)盤網(wǎng)來說本人傾注了很多的心血,現(xiàn)在使用的人數(shù)也還可以,網(wǎng)盤資源都有個通病,那就是資源可能失效,但很多引擎都沒有做失效判斷,尤其是一些google自定義的引擎,技術(shù)含量不高,站長也就花心思賺錢,很少考慮用戶體驗。這篇文章是本人又一篇技術(shù)公開博客,之前本人已經(jīng)公開了去轉(zhuǎn)盤 網(wǎng)的幾乎所有的技術(shù)細(xì)節(jié),這一篇繼續(xù)補(bǔ)充: 首先做個回顧:百度網(wǎng)盤爬蟲 java分詞...
我不知道現(xiàn)在有多少人在用網(wǎng)盤搜索引擎,但就去轉(zhuǎn)盤網(wǎng)來說本人傾注了很多的心血,現(xiàn)在使用的人數(shù)也還可以,網(wǎng)盤資源都有個通病,那就是資源可能失效,但很多引擎都沒有做失效判斷,尤其是一些google自定義的引擎,技術(shù)含量不高,站長也就花心思賺錢,很少考慮用戶體驗。這篇文章是本人又一篇技術(shù)公開博客,之前本人已經(jīng)公開了去轉(zhuǎn)盤 網(wǎng)的幾乎所有的技術(shù)細(xì)節(jié),這一篇繼續(xù)補(bǔ)充: 首先做個回顧:百度網(wǎng)盤爬蟲 java分詞...
摘要:摘要在月日召開的第二屆研發(fā)效能嘉年華中,云效邀請了阿里云產(chǎn)品團(tuán)隊的伏羿和來自阿里巴巴中間件技術(shù)部的彥林帶來了如何借助配置中心加速企業(yè)服務(wù)快速迭代的主題分享。 摘要: 在5月29日召開的第二屆研發(fā)效能嘉年華中,云效邀請了阿里云產(chǎn)品團(tuán)隊的伏羿和來自阿里巴巴中間件技術(shù)部的彥林帶來了如何借助配置中心ACM加速企業(yè)IT服務(wù)快速迭代的主題分享。 分別對配置中心ACM和ACM技術(shù)進(jìn)行了講解,并且對A...
閱讀 2263·2021-11-19 09:58
閱讀 1780·2021-11-15 11:36
閱讀 2928·2019-08-30 15:54
閱讀 3466·2019-08-29 15:07
閱讀 2832·2019-08-26 11:47
閱讀 2922·2019-08-26 10:11
閱讀 2564·2019-08-23 18:22
閱讀 2819·2019-08-23 17:58