0
点赞
收藏
分享

微信扫一扫

设置properties的加载策略

水沐由之 2022-08-04 阅读 19


动态加载:

1.需要configuration包:

<!-- https://mvnrepository.com/artifact/commons-configuration/commons-configuration -->  
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>

 2.示例:

package cn.raysun.demo.shiro.other;  

import java.io.File;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;

/**
* {@code FileChangedReloadingStrategy}的测试类
* @author ray.sun
*
*/
public class FileChangedReloadingStrategyTest {

//加载文件的频率
private static final long RELOAD_PERIOD = 10L;
private static PropertiesConfiguration config;

public static void main(String[] args) {

//获得当前类运行的classpath路径
String currentClassPath = ClassLoader.getSystemResource("").getPath();
initialize(currentClassPath + "reloadstrategy-test.properties");

while(true){
try {
System.out.println("user=" + config.getString("user.loginName"));
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

//初始化配置文件和文件加载策略
private static void initialize(String filePath){
try {
FileChangedReloadingStrategy fileChangedReloadingStrategy = new FileChangedReloadingStrategy();
//设置扫描文件的最小时间间隔
fileChangedReloadingStrategy.setRefreshDelay(RELOAD_PERIOD);

//设置加载策略
config = new PropertiesConfiguration(new File(filePath));
config.setReloadingStrategy(fileChangedReloadingStrategy);

} catch (ConfigurationException e) {
e.printStackTrace();
}
}

}

 

举报

相关推荐

0 条评论