怎麼讓配置文件的修改動態生效

    在咱們的應用中,如何讓配置文件的修改動態生效?這裏提供一種方法。java

    log4j中咱們能夠配置log4j.xml動態生效。它是怎麼作的?簡單的說就是一個daemon線程不停的在檢查文件修改時間。線程

DOMConfigurator.configureAndWatch(String fileName);

   若是咱們看一下這部分的源代碼就會發現:log4j提供了一個抽象類FileWatchdogcode

   這個類完成了線程的大部分工做。而後提供了一個抽象方法doOnChange()給子類來實現。xml

   好了咱們的工做其實就變的很簡單了。寫一個類繼承FileWatchdog:繼承

class ConfigWatchdog extends FileWatchdog {
    ConfigWatchdog(String filename) {
        super(filename);
    }

    /**
    * update your configuration object
    */
    public void doOnChange() {
        //your custom logic
    }
}

而後在咱們的讀配置文件的類裏面啓動ConfigWatchdog類。

ConfigWatchdog watchDog = new ConfigWatchdog(fileName);
watchDog.setDelay(10000); // check configure files change 10 sec
watchDog.start();
這樣就能夠快速的完成這個小功能。
相關文章
相關標籤/搜索