使用commons-configuration读取配置文件的内容
引入依赖
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
配置文件存放路径
读取properties文件
使用FileChangedReloadingStrategy修改后即使不重启,也能获取到最新的内容
@Test
public void test1() throws ConfigurationException, InterruptedException{
PropertiesConfiguration cfg = new PropertiesConfiguration("./static/config.properties");
// 当文件的内容发生改变时,配置对象也会刷新,无需重启服务
cfg.setReloadingStrategy(new FileChangedReloadingStrategy());
while(true){
System.out.println(cfg.getString("name"));;
System.out.println(cfg.getInt("age"));
System.out.println(cfg.getBoolean("flag"));
System.out.println(cfg.getStringArray("list"));
System.out.println(cfg.getList("list"));
Thread.sleep(5000L);
}
}
内容:
name=xiao
age=21
flag=false
list=red,blue
读取xml文件
使用FileChangedReloadingStrategy修改后即使不重启,也能获取到最新的内容
@Test
public void test2() throws ConfigurationException{
ClassLoader classLoader = this.getClass().getClassLoader();
URL resource = classLoader.getResource("./static/config.xml");
//这里换一种方式读取文件,先获取到文件绝对路径,再读取
XMLConfiguration cfg = new XMLConfiguration(resource);
// 当文件的内容发生改变时,配置对象也会刷新
cfg.setReloadingStrategy(new FileChangedReloadingStrategy());
//直接获取,注意不需要最外层的config标签名称
System.out.println(cfg.getString("database.url"));;
System.out.println(cfg.getString("database.port"));;
System.out.println(cfg.getString("database.login"));;
System.out.println(cfg.getString("database.password"));;
//获取到document,接下来就可以解析xml标签了
Document document = cfg.getDocument();
}
xml内容:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<database>
<url>127.0.0.1</url>
<port>8080</port>
<login>admin</login>
<password>admin</password>
</database>
</config>
spring 中读取Properties配置文件的内容
spring 中读取Properties配置文件: https://www.jb51.net/article/140459.htm.