当前位置: 首页 > news >正文

commons-configuration2(配置管理库)

概述

Java配置管理库,支持XML、properties、INI等多种格式的配置文件,并提供统一的配置管理接口。

maven依赖

    <dependency><groupId>org.apache.commons</groupId><artifactId>commons-configuration2</artifactId><version>2.9.0</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.11.0</version></dependency><!--  使用XPath表达式解析器需要引入  --><dependency><groupId>commons-jxpath</groupId><artifactId>commons-jxpath</artifactId><version>1.4.0</version></dependency>

示例

    Configurations configurations=new Configurations();//读取properties配置文件PropertiesConfiguration propertiesConfig = configurations.properties(this.getClass().getResource("/config/demo.properties"));System.out.println(propertiesConfig.getString("a.b"));//读取yaml配置文件YAMLConfiguration yamlConfig = configurations.fileBased(YAMLConfiguration.class, this.getClass().getResource("/config/demo.yaml"));System.out.println(yamlConfig.getString("a.b"));//读取xml配置文件XMLConfiguration xmlConfig = configurations.xml(this.getClass().getResource("/config/demo.xml"));System.out.println(xmlConfig.getString("a.b"));//获取标签体内容System.out.println(xmlConfig.getString("a.b[@id]"));//获取标签属性//读取系统环境变量EnvironmentConfiguration configuration=new EnvironmentConfiguration();System.out.println(configuration.getMap());

常用API

Configurations

方法说明
Configurations()
Configurations(Parameters params)
构造方法
getParameters()获取参数
fileBased(Class configClass, File file)
fileBased(Class configClass, URL url)
fileBased(Class configClass, String path)
获取指定的配置对象(FileBasedConfiguration的实现类)
properties(File file)
properties(URL url)
properties(String path)
获取properties配置对象
xml(File file)
xml(URL url)
xml(String path)
获取xml配置对象
ini(File file)
ini(URL url)
ini(String path)
获取ini配置对象
combined(File file)
combined(URL url)
combined(String path)
获取组合配置对象
fileBasedBuilder(Class configClass, File file)
fileBasedBuilder(Class configClass, URL url)
fileBasedBuilder(Class configClass, String path)
获取指定的配置对象构造器
propertiesBuilder()
propertiesBuilder(File file)
propertiesBuilder(PropertiesBuilderParameters parameters)
propertiesBuilder(URL url)
propertiesBuilder(String path)
获取properties配置对象构造器
xmlBuilder(File file)
xmlBuilder(URL url)
xmlBuilder(String path)
获取xml配置对象构造器
iniBuilder(File file)
iniBuilder(URL url)
iniBuilder(String path)
获取ini配置对象构造器
combinedBuilder(File file)
combinedBuilder(URL url)
combinedBuilder(String path)
获取组合配置对象构造器

可用配置实现类

  • FileBasedConfiguration的实现类
实现类说明
INIConfiguration用于处理ini格式配置文件的类
JSONConfiguration用于处理JSON格式配置文件的类,支持JSON的解析、写入和动态更新。
PropertiesConfiguration用于处理properties格式配置文件的类
PropertyListConfiguration用于处理plist格式配置文件的类
XMLConfiguration用于处理xml格式配置文件的类,根标签为<configuration>
XMLPropertiesConfiguration
XMLPropertyListConfiguration
YAMLConfiguration用于处理yaml格式配置文件的类
PatternSubtreeConfigurationWrapper包装类,用于基于正则表达式匹配子配置树的工具类,主要用于从大型配置中提取特定结构的子配置。
  • 其他配置类
实现类说明
AppletConfiguration用于读取Applet参数的只读配置类
BaseConfiguration基础内存配置实现类,用于在内存中存储和管理键值对配置
BaseHierarchicalConfiguration基础支持层级结构的配置类,适用于XML、JSON等树形配置
CombinedConfiguration用于组合多个配置源的复合配置类
CompositeConfiguration用于组合多个配置源的替代实现,与CombinedConfiguration类似但采用不同的合并策略
DataConfiguration用于处理数据源配置的扩展类,提供数据库连接等数据相关配置的便捷访问方法
DatabaseConfiguration用于从数据库读取配置的实现类,支持单表多配置存储和自动提交控制
DynamicCombinedConfiguration支持动态重载的组合配置实现,继承自CombinedConfiguration并增加了自动检测配置变更的能力
EnvironmentConfiguration用于读取系统环境变量的配置实现类,将操作系统环境变量映射为配置属性
JNDIConfiguration用于从JNDI树读取配置的实现类,支持访问各种JNDI资源
MapConfiguration基于Map存储的配置实现类,支持将任意Map对象转换为配置源
ServletConfiguration用于读取Servlet上下文参数和初始化参数的配置实现类
ServletContextConfiguration读取web.xml中的
ServletFilterConfiguration读取Filter初始化参数
ServletRequestConfiguration读取HTTP请求头和参数
SubnodeConfiguration用于处理配置子树的分层配置实现类,支持对INI/XML等结构化配置的节点级操作
SubsetConfiguration基于前缀筛选的配置数据,可创建父配置的特定前缀子集
SystemConfiguration用于读取JVM系统属性的配置实现类

配置类常用方法

方法说明
isEmpty()判断配置是否为空
size()获取配置大小
containsKey(String key)判断是否含有指定配置
getKeys()
getKeys(String prefix)
获取所有配置键的迭代器
setProperty(String key, Object value)
getProperty(String key)
设置或获取指定键的配置值
clearProperty(String key)清除指定键的配置
getProperties(String key)
getProperties(String key, Properties defaults)
获取配置项Properties对象
getBoolean(String key)
getBoolean(String key, boolean defaultValue)
getBoolean(String key, Boolean defaultValue)
用于从配置文件中读取布尔类型的配置值。
getByte(String key)
getByte(String key, byte defaultValue)
getByte(String key, Byte defaultValue)
用于从配置文件中读取byte类型的配置值。
getDouble(String key)
getDouble(String key, double defaultValue)
getDouble(String key, Double defaultValue)
用于从配置文件中读取double类型的配置值。
getDuration(String key)
getDuration(String key, Duration defaultValue)
用于从配置文件中读取 duration类型 的配置值。
getFloat(String key)
getFloat(String key, float defaultValue)
getFloat(String key, Float defaultValue)
用于从配置文件中读取 float类型 的配置值。
getInt(String key)
getInt(String key, int defaultValue)
getInteger(String key, Integer defaultValue)
用于从配置文件中读取 int类型 的配置值。
getLong(String key)
getLong(String key, long defaultValue)
getLong(String key, Long defaultValue)
用于从配置文件中读取 long类型 的配置值。
getShort(String key)
getShort(String key, short defaultValue)
getShort(String key, Short defaultValue)
用于从配置文件中读取 short类型 的配置值。
getBigDecimal(String key)
getBigDecimal(String key, BigDecimal defaultValue)
用于从配置文件中读取 BigDecimal 类型 的配置值。
getBigInteger(String key)
getBigInteger(String key, BigInteger defaultValue)
用于从配置文件中读取 BigInteger 类型 的配置值。
getString(String key)
getString(String key, String defaultValue)
用于从配置文件中读取 字符串类型 的配置值。
getEncodedString(String key, ConfigurationDecoder decoder)
getEncodedString(String key)
用于从配置文件中读取 编码字符串类型 的配置值。
getStringArray(String key)用于从配置文件中读取 字符串数组类型 的配置值。
getList(String key)
getList(String key, List<?> defaultValue)
getList(Class<T> cls, String key)
getList(Class<T> cls, String key, List<T> defaultValue)
用于从配置文件中读取 List集合类型 的配置值。
get(Class<T> cls, String key)
get(Class<T> cls, String key, T defaultValue)
用于从配置文件中读取 指定类型 的配置值。
getArray(Class<?> cls, String key)
getArray(Class<?> cls, String key, Object defaultValue)
用于从配置文件中读取数组类型 的配置值。
getCollection(Class<T> cls, String key, Collection<T> target)
getCollection(Class<T> cls, String key, Collection<T> target, Collection<T> defaultValue)
用于从配置文件中读取 Collection类型 的配置值。
copy(Configuration c)复制配置对象
append(Configuration c)用于将一个配置对象的内容追加到另一个配置对象中。
interpolatedConfiguration()允许在配置值中引用其他配置项或系统环境变量,动态解析其值。
getListDelimiterHandler()
setListDelimiterHandler(ListDelimiterHandler listDelimiterHandler)
用于获取或设置配置文件中列表分隔符,主要用于处理配置值中包含的列表
getConversionHandler()
setConversionHandler(ConversionHandler conversionHandler)
用于获取或设置类型转换处理器
setThrowExceptionOnMissing(boolean throwExceptionOnMissing)
isThrowExceptionOnMissing()
用于控制当访问不存在的配置键时是否抛出异常
getInterpolator()
setInterpolator(ConfigurationInterpolator ci)
用于获取或设置当前配置对象的变量插值处理器
installInterpolator(Map<String, ? extends Lookup> prefixLookups, Collection<? extends Lookup> defLookups)用于自定义或扩展变量插值逻辑
setPrefixLookups(Map<String, ? extends Lookup> lookups)用于批量注册自定义变量解析前缀
setDefaultLookups(Collection<? extends Lookup> lookups)用于配置全局默认变量解析前缀
setParentInterpolator(ConfigurationInterpolator parent)用于设置当前插值器的父级插值器
setConfigurationDecoder(ConfigurationDecoder configurationDecoder)
getConfigurationDecoder()
用于设置配置解码器
getLogger()
setLogger(ConfigurationLogger log)
用于设置日志记录器
addErrorLogListener()用于添加错误日志监听器
getSynchronizer()
setSynchronizer(Synchronizer synchronizer)
用于设置同步控制器
lock(LockMode mode)用于实现线程同步,加锁
unlock(LockMode mode)用于实现线程同步,解锁
addProperty(String key, Object value)添加配置数据
subset(String prefix)获取配置的子集
immutableSubset(String prefix)获取配置不可修改的子集
clear()清空配置
http://www.dtcms.com/a/474475.html

相关文章:

  • 处理Git错误:“invalid object [hash]”和“unable to read tree [hash]”
  • MySQL数据库 常用命令整理
  • 前端开发 - 实时智能回复
  • 对电子商务网站建设与维护的总结wordpress多选展示表单
  • 从零起步学习MySQL || 第二章:DDL语句定义及常见用法示例
  • Oracle REST Data Services是什么?
  • [吾爱大神原创工具] windows 多窗口同步软件(键+鼠) 20251011 更新
  • TDengine 数学函数 COS 用户手册
  • qfd 网站开发wordpress 上传主题 ftp
  • 算法与数据结构——排序算法大全
  • 吕口-反射薄利多销AI入口算法系统方案
  • Python全方位指南:定义、应用与零基础入门实战
  • Iperius Backup Full(备份恢复软件) 多语便携版
  • 建站平台在线提交功能wordpress 访问慢
  • 《深入理解Java虚拟机JVM高级特性与最佳实践》
  • 昆明模板建站定制网站网页设计公司哪个好
  • 语义与认知中的循环解释悖论及其对人工智能自然语言处理的深层语义分析的影响和启示
  • 可以做硬件外包项目的网站网站建设的发展目标
  • 地产网站建设互动营销网站兼容手机代码
  • 【AI编程】腾讯AI编程神器 CodeBuddy从使用到项目实战详解
  • JavaEE 初阶第二十九期:HTTP协议深度揭秘(三)
  • ReentrantLock中的Condition
  • 基于Spring Boot + Vue 3的乡村振兴综合服务平台架构设计与实现
  • 专门做门的网站软件开发公司专业的有哪些
  • 网站不用了 怎么关闭吗做资源网站怎么赚钱
  • J东h5st逆向实战
  • 营销型网站如何制作软件设计师含金量高吗
  • 【MySQL】从零开始了解数据库开发 --- 基本查询
  • LeetCode进阶算法题解详解
  • 构造器是什么