成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

WatchService實(shí)現(xiàn)配置文件變更監(jiān)聽(tīng)

tomlingtm / 3722人閱讀

摘要:實(shí)現(xiàn)配置文件變更監(jiān)聽(tīng)讀取的配置文件,在資源文件夾下就行監(jiān)聽(tīng)所在目錄下的文件修改刪除事件啟動(dòng)一個(gè)線程監(jiān)聽(tīng)內(nèi)容變化,并重新載入配置設(shè)置成守護(hù)進(jìn)程當(dāng)服務(wù)器進(jìn)程關(guān)閉時(shí)把監(jiān)聽(tīng)線程掉

/**
 * WatchService實(shí)現(xiàn)配置文件變更監(jiān)聽(tīng)
 * 
 */
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)聽(tīng)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();
        }
        
        //啟動(dòng)一個(gè)線程監(jiān)聽(tīng)內(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)閉時(shí)把監(jiān)聽(tīng)線程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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69976.html

相關(guān)文章

  • Java NIO

    摘要:緩沖區(qū)的容量不可能為負(fù)值,創(chuàng)建后不能改變界限界限第一個(gè)不應(yīng)該被讀寫或者寫入的緩沖區(qū)位置索引。當(dāng)使用從中讀取數(shù)據(jù)時(shí),的值恰好等于已經(jīng)讀到了多少數(shù)據(jù)。 NIO:New IO Java新IO概述 新IO采用內(nèi)存映射文件的方式來(lái)處理輸入/輸出,新IO文件或文件的一段區(qū)域映射到內(nèi)存中,這樣就可以訪問(wèn)內(nèi)存一樣來(lái)訪問(wèn)文件了(這種方式模擬了操作系統(tǒng)上的虛擬內(nèi)存的概念),通過(guò)這種方式來(lái)進(jìn)行輸入/輸出比傳...

    Steve_Wang_ 評(píng)論0 收藏0
  • 爬取 wallhaven圖片到本地壁紙庫(kù)

    摘要:項(xiàng)目地址,另外知乎同名文章也是我發(fā)布的,大家可以多多關(guān)注首先觀察控制臺(tái)其次再看本地壁紙庫(kù)現(xiàn)在進(jìn)入正題,這個(gè)小項(xiàng)目用到了具體版本見(jiàn),另外還用到了中的線程池阻塞隊(duì)列生產(chǎn)消費(fèi)者模式文件監(jiān)聽(tīng)服務(wù),所以至少要求版本為或者以上項(xiàng)目分為個(gè)類和一個(gè)方法入 項(xiàng)目地址,另外知乎同名文章也是我發(fā)布的,大家可以多多關(guān)注 首先觀察控制臺(tái)showImg(https://segmentfault.com/img/b...

    CntChen 評(píng)論0 收藏0
  • java判斷百度云分享鏈接是否失效

    我不知道現(xiàn)在有多少人在用網(wǎng)盤搜索引擎,但就去轉(zhuǎn)盤網(wǎng)來(lái)說(shuō)本人傾注了很多的心血,現(xiàn)在使用的人數(shù)也還可以,網(wǎng)盤資源都有個(gè)通病,那就是資源可能失效,但很多引擎都沒(méi)有做失效判斷,尤其是一些google自定義的引擎,技術(shù)含量不高,站長(zhǎng)也就花心思賺錢,很少考慮用戶體驗(yàn)。這篇文章是本人又一篇技術(shù)公開(kāi)博客,之前本人已經(jīng)公開(kāi)了去轉(zhuǎn)盤 網(wǎng)的幾乎所有的技術(shù)細(xì)節(jié),這一篇繼續(xù)補(bǔ)充: 首先做個(gè)回顧:百度網(wǎng)盤爬蟲(chóng) java分詞...

    kid143 評(píng)論0 收藏0
  • java判斷百度云分享鏈接是否失效

    我不知道現(xiàn)在有多少人在用網(wǎng)盤搜索引擎,但就去轉(zhuǎn)盤網(wǎng)來(lái)說(shuō)本人傾注了很多的心血,現(xiàn)在使用的人數(shù)也還可以,網(wǎng)盤資源都有個(gè)通病,那就是資源可能失效,但很多引擎都沒(méi)有做失效判斷,尤其是一些google自定義的引擎,技術(shù)含量不高,站長(zhǎng)也就花心思賺錢,很少考慮用戶體驗(yàn)。這篇文章是本人又一篇技術(shù)公開(kāi)博客,之前本人已經(jīng)公開(kāi)了去轉(zhuǎn)盤 網(wǎng)的幾乎所有的技術(shù)細(xì)節(jié),這一篇繼續(xù)補(bǔ)充: 首先做個(gè)回顧:百度網(wǎng)盤爬蟲(chóng) java分詞...

    chanthuang 評(píng)論0 收藏0
  • 如何借助配置中心ACM加速企業(yè)IT服務(wù)快速迭代

    摘要:摘要在月日召開(kāi)的第二屆研發(fā)效能嘉年華中,云效邀請(qǐng)了阿里云產(chǎn)品團(tuán)隊(duì)的伏羿和來(lái)自阿里巴巴中間件技術(shù)部的彥林帶來(lái)了如何借助配置中心加速企業(yè)服務(wù)快速迭代的主題分享。 摘要: 在5月29日召開(kāi)的第二屆研發(fā)效能嘉年華中,云效邀請(qǐng)了阿里云產(chǎn)品團(tuán)隊(duì)的伏羿和來(lái)自阿里巴巴中間件技術(shù)部的彥林帶來(lái)了如何借助配置中心ACM加速企業(yè)IT服務(wù)快速迭代的主題分享。 分別對(duì)配置中心ACM和ACM技術(shù)進(jìn)行了講解,并且對(duì)A...

    李義 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<