Package org.aoju.bus.setting.magic
Class PopSetting
java.lang.Object
org.aoju.bus.setting.magic.AbstractSetting
org.aoju.bus.setting.magic.PopSetting
- All Implemented Interfaces:
Serializable,Map<String,,String> org.aoju.bus.core.getter.BasicType<String>,org.aoju.bus.core.getter.OptBasicType<String>,org.aoju.bus.core.getter.OptNullString<String>,org.aoju.bus.core.getter.OptNullType<String>
设置工具类 用于支持设置(配置)文件
用于替换Properties类,提供功能更加强大的配置文件,同时对Properties文件向下兼容
1、支持变量,默认变量命名为 ${变量名},变量只能识别读入行的变量,例如第6行的变量在第三行无法读取
2、支持分组,分组为中括号括起来的内容,中括号以下的行都为此分组的内容,无分组相当于空字符分组,若某个key是name,加上分组后的键相当于group.name
3、注释以#开头,但是空行和不带“=”的行也会被跳过,但是建议加#
4、store方法不会保存注释内容,慎重使用
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Charset本设置对象的字符集protected boolean是否使用变量protected org.aoju.bus.core.io.resource.Resource设定文件的资源 -
Constructor Summary
ConstructorsConstructorDescription空构造PopSetting(File configFile, Charset charset, boolean isUseVariable) 构造PopSetting(String path) 构造PopSetting(String path, boolean isUseVariable) 构造PopSetting(String path, Class<?> clazz, Charset charset, boolean isUseVariable) 构造,相对于classes读取文件PopSetting(String path, Charset charset, boolean isUseVariable) 构造,使用相对于Class文件根目录的相对路径PopSetting(URL url, Charset charset, boolean isUseVariable) 构造 -
Method Summary
Modifier and TypeMethodDescriptionvoidautoLoad(boolean autoReload) 在配置文件变更时自动加载void在配置文件变更时自动加载voidclear()清空默认分组(空分组)中的所有键值对清除指定分组下的所有键值对booleancontainsKey(Object key) 默认分组(空分组)中是否包含指定key对应的值booleancontainsKey(String group, String key) 指定分组中是否包含指定keybooleancontainsValue(Object value) 默认分组(空分组)中是否包含指定值booleancontainsValue(String group, String value) 指定分组中是否包含指定值entrySet()获取默认分组(空分组)中的所有键值对列表指定分组下所有键值对boolean获取默认分组(空分组)中指定key对应的值获取分组对应的值,如果分组不存在或者值不存在则返回nullgetAndRemove(String... keys) 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找getAndRemoveStr(String... keys) 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找getByGroup(String key, String group) 获得指定分组的键对应值获取GroupedMap获取所有分组获得指定分组的所有键值对,此方法获取的是原始键值对,获取的键值对可以被修改getProperties(String group) 获得group对应的子Properties获得group对应的子PropsgetSetting(String group) 获得group对应的子Setting获得设定文件的URLinthashCode()boolean初始化设定文件booleanisEmpty()boolean某个分组对应的键值对是否为空keySet()获取默认分组(空分组)中的所有键列表指定分组所有键的Setbooleanload()重新加载配置文件将指定键值对加入到默认分组(空分组)中将键值对加入到对应分组中加入多个键值对到某个分组下void将键值对Map加入默认分组(空分组)中移除默认分组(空分组)中指定值从指定分组中删除指定值设置值voidsetVarRegex(String regex) 设置变量的正则 正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示intsize()键值总数voidstore()持久化当前设置,会覆盖掉之前的设置 持久化不会保留之前的分组,注意如果配置文件在jar内部或者在exe中,此方法会报错。void持久化当前设置,会覆盖掉之前的设置 持久化不会保留之前的分组void持久化当前设置,会覆盖掉之前的设置 持久化不会保留之前的分组转换为Properties对象,原分组变为前缀toString()values()获取默认分组(空分组)中的所有值列表指定分组下所有值Methods inherited from class org.aoju.bus.setting.magic.AbstractSetting
getBool, getBool, getByGroupWithLog, getChar, getDouble, getDouble, getInt, getInt, getLong, getLong, getStr, getStr, getStrings, getStrings, getStrings, getStringsWithDefault, getStrNotEmpty, getWithLog, toBean, toBeanMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAllMethods inherited from interface org.aoju.bus.core.getter.OptNullString
getBigDecimal, getBigInteger, getBool, getByte, getChar, getDate, getDouble, getEnum, getFloat, getInt, getLong, getObj, getShortMethods inherited from interface org.aoju.bus.core.getter.OptNullType
getBigDecimal, getBigInteger, getBool, getByte, getChar, getDate, getDouble, getEnum, getFloat, getInt, getLong, getObj, getShort, getStr
-
Field Details
-
charset
本设置对象的字符集 -
isUseVariable
protected boolean isUseVariable是否使用变量 -
resource
protected org.aoju.bus.core.io.resource.Resource resource设定文件的资源
-
-
Constructor Details
-
PopSetting
public PopSetting()空构造 -
PopSetting
构造- Parameters:
path- 相对路径或绝对路径
-
PopSetting
构造- Parameters:
path- 相对路径或绝对路径isUseVariable- 是否使用变量
-
PopSetting
构造,使用相对于Class文件根目录的相对路径- Parameters:
path- 相对路径或绝对路径charset- 字符集isUseVariable- 是否使用变量
-
PopSetting
构造- Parameters:
configFile- 配置文件对象charset- 字符集isUseVariable- 是否使用变量
-
PopSetting
构造,相对于classes读取文件- Parameters:
path- 相对ClassPath路径或绝对路径clazz- 基准类charset- 字符集isUseVariable- 是否使用变量
-
PopSetting
构造- Parameters:
url- 设定文件的URLcharset- 字符集isUseVariable- 是否使用变量
-
-
Method Details
-
init
public boolean init(org.aoju.bus.core.io.resource.Resource resource, Charset charset, boolean isUseVariable) 初始化设定文件- Parameters:
resource-Resourcecharset- 字符集isUseVariable- 是否使用变量- Returns:
- 成功初始化与否
-
load
public boolean load()重新加载配置文件- Returns:
- 是否加载成功
-
autoLoad
public void autoLoad(boolean autoReload) 在配置文件变更时自动加载- Parameters:
autoReload- 是否自动加载
-
autoLoad
在配置文件变更时自动加载- Parameters:
callback- 加载完成回调autoReload- 是否自动加载
-
getSettingUrl
获得设定文件的URL- Returns:
- 获得设定文件的路径
-
getSettingPath
- Returns:
- 获得设定文件的路径
-
size
public int size()键值总数 -
getByGroup
Description copied from class:AbstractSetting获得指定分组的键对应值- Specified by:
getByGroupin classAbstractSetting- Parameters:
key- 键group- 分组- Returns:
- 值
-
getAndRemove
获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找- Parameters:
keys- 键列表,常用于别名- Returns:
- 值
-
getAndRemoveStr
获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找- Parameters:
keys- 键列表,常用于别名- Returns:
- 字符串值
-
getMap
获得指定分组的所有键值对,此方法获取的是原始键值对,获取的键值对可以被修改- Parameters:
group- 分组- Returns:
- map
-
getSetting
获得group对应的子Setting- Parameters:
group- 分组- Returns:
PopSetting
-
getProperties
获得group对应的子Properties- Parameters:
group- 分组- Returns:
- Properties对象
-
getProps
获得group对应的子Props- Parameters:
group- 分组- Returns:
- Props对象
-
store
public void store()持久化当前设置,会覆盖掉之前的设置 持久化不会保留之前的分组,注意如果配置文件在jar内部或者在exe中,此方法会报错。 -
store
持久化当前设置,会覆盖掉之前的设置 持久化不会保留之前的分组- Parameters:
absolutePath- 设置文件的绝对路径
-
store
持久化当前设置,会覆盖掉之前的设置 持久化不会保留之前的分组- Parameters:
file- 设置文件
-
toProperties
转换为Properties对象,原分组变为前缀- Returns:
- Properties对象
-
getGroupMap
获取GroupedMap- Returns:
- GroupedMap
-
getGroups
获取所有分组- Returns:
- 获得所有分组名
-
setVarRegex
设置变量的正则 正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示- Parameters:
regex- 正则
-
isEmpty
某个分组对应的键值对是否为空- Parameters:
group- 分组- Returns:
- 是否为空
-
containsKey
指定分组中是否包含指定key- Parameters:
group- 分组key- 键- Returns:
- 是否包含key
-
containsValue
指定分组中是否包含指定值- Parameters:
group- 分组value- 值- Returns:
- 是否包含值
-
get
获取分组对应的值,如果分组不存在或者值不存在则返回null- Parameters:
group- 分组key- 键- Returns:
- 值, 如果分组不存在或者值不存在则返回null
-
put
将键值对加入到对应分组中- Parameters:
group- 分组key- 键value- 值- Returns:
- 此key之前存在的值, 如果没有返回null
-
remove
从指定分组中删除指定值- Parameters:
group- 分组key- 键- Returns:
- 被删除的值, 如果值不存在, 返回null
-
putAll
加入多个键值对到某个分组下- Parameters:
group- 分组m- 键值对- Returns:
- this
-
clear
清除指定分组下的所有键值对- Parameters:
group- 分组- Returns:
- this
-
keySet
指定分组所有键的Set- Parameters:
group- 分组- Returns:
- 键Set
-
values
指定分组下所有值- Parameters:
group- 分组- Returns:
- 值
-
entrySet
指定分组下所有键值对- Parameters:
group- 分组- Returns:
- 键值对
-
set
设置值- Parameters:
key- 键value- 值- Returns:
- this
-
isEmpty
public boolean isEmpty() -
containsKey
默认分组(空分组)中是否包含指定key对应的值- Specified by:
containsKeyin interfaceMap<String,String> - Parameters:
key- 键- Returns:
- 默认分组中是否包含指定key对应的值
-
containsValue
默认分组(空分组)中是否包含指定值- Specified by:
containsValuein interfaceMap<String,String> - Parameters:
value- 值- Returns:
- 默认分组中是否包含指定值
-
get
获取默认分组(空分组)中指定key对应的值 -
put
将指定键值对加入到默认分组(空分组)中 -
remove
移除默认分组(空分组)中指定值 -
putAll
将键值对Map加入默认分组(空分组)中 -
clear
public void clear()清空默认分组(空分组)中的所有键值对 -
keySet
获取默认分组(空分组)中的所有键列表 -
values
获取默认分组(空分组)中的所有值列表 -
entrySet
获取默认分组(空分组)中的所有键值对列表 -
hashCode
public int hashCode() -
equals
-
toString
-