在咱們的應用中,如何讓配置文件的修改動態生效?這裏提供一種方法。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();這樣就能夠快速的完成這個小功能。