1.前言
因为某些原因,有些项目没有使用nacos作为配置中心。但是有些配置有可能是动态变化的,如果通过springboot的配置文件,每次修改配置就需要重启项目,有些麻烦。如果采用外部读取文件的方式,频繁的io也划不来。所以可以借助Commons-Configuration2来实现配置的动态加载。
2.Commons Configuration 简介
Commons Configuration软件库提供了一个通用的配置接口,它使 一个 Java 应用程序,用于从各种来源读取配置数据。
共享资源配置 提供对单个和多值配置参数的类型化访问,可以支持多种配置文件格式:
- Properties files
- XML documents
- Windows INI files
- Property list files(plist)
- JNDI
- JDBC Datasource
- System properties
- Applet parameters
- Servlet parameters
3.使用Commons-Configuration2
(1)导入Commons-Configuration2依赖
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.8.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
(2)编写工具类
MyConfigManager .class
import org.apache.commons.configuration2.PropertiesConfiguration;
import org.apache.commons.configuration2.builder.fluent.Configurations;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
/**
* 配置管理器类,用于加载和管理配置信息。
*/