mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix comment
This commit is contained in:
@@ -33,39 +33,51 @@ import cn.hutool.setting.dialect.Props;
|
||||
/**
|
||||
* 设置工具类。 用于支持设置(配置)文件<br>
|
||||
* BasicSetting用于替换Properties类,提供功能更加强大的配置文件,同时对Properties文件向下兼容
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* 1、支持变量,默认变量命名为 ${变量名},变量只能识别读入行的变量,例如第6行的变量在第三行无法读取
|
||||
* 2、支持分组,分组为中括号括起来的内容,中括号以下的行都为此分组的内容,无分组相当于空字符分组,若某个key是name,加上分组后的键相当于group.name
|
||||
* 3、注释以#开头,但是空行和不带“=”的行也会被跳过,但是建议加#
|
||||
* 4、store方法不会保存注释内容,慎重使用
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class Setting extends AbsSetting implements Map<String, String> {
|
||||
private static final long serialVersionUID = 3618305164959883393L;
|
||||
|
||||
/** 默认字符集 */
|
||||
/**
|
||||
* 默认字符集
|
||||
*/
|
||||
public final static Charset DEFAULT_CHARSET = CharsetUtil.CHARSET_UTF_8;
|
||||
/** 默认配置文件扩展名 */
|
||||
/**
|
||||
* 默认配置文件扩展名
|
||||
*/
|
||||
public final static String EXT_NAME = "setting";
|
||||
|
||||
/** 附带分组的键值对存储 */
|
||||
/**
|
||||
* 附带分组的键值对存储
|
||||
*/
|
||||
private final GroupedMap groupedMap = new GroupedMap();
|
||||
|
||||
/** 本设置对象的字符集 */
|
||||
/**
|
||||
* 本设置对象的字符集
|
||||
*/
|
||||
protected Charset charset;
|
||||
/** 是否使用变量 */
|
||||
/**
|
||||
* 是否使用变量
|
||||
*/
|
||||
protected boolean isUseVariable;
|
||||
/** 设定文件的URL */
|
||||
/**
|
||||
* 设定文件的URL
|
||||
*/
|
||||
protected URL settingUrl;
|
||||
|
||||
private SettingLoader settingLoader;
|
||||
private WatchMonitor watchMonitor;
|
||||
|
||||
// ------------------------------------------------------------------------------------- Constructor start
|
||||
|
||||
/**
|
||||
* 空构造
|
||||
*/
|
||||
@@ -75,7 +87,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param path 相对路径或绝对路径
|
||||
*/
|
||||
public Setting(String path) {
|
||||
@@ -84,8 +96,8 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param path 相对路径或绝对路径
|
||||
*
|
||||
* @param path 相对路径或绝对路径
|
||||
* @param isUseVariable 是否使用变量
|
||||
*/
|
||||
public Setting(String path, boolean isUseVariable) {
|
||||
@@ -94,9 +106,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 构造,使用相对于Class文件根目录的相对路径
|
||||
*
|
||||
* @param path 相对路径或绝对路径
|
||||
* @param charset 字符集
|
||||
*
|
||||
* @param path 相对路径或绝对路径
|
||||
* @param charset 字符集
|
||||
* @param isUseVariable 是否使用变量
|
||||
*/
|
||||
public Setting(String path, Charset charset, boolean isUseVariable) {
|
||||
@@ -106,9 +118,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param configFile 配置文件对象
|
||||
* @param charset 字符集
|
||||
*
|
||||
* @param configFile 配置文件对象
|
||||
* @param charset 字符集
|
||||
* @param isUseVariable 是否使用变量
|
||||
*/
|
||||
public Setting(File configFile, Charset charset, boolean isUseVariable) {
|
||||
@@ -118,10 +130,10 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 构造,相对于classes读取文件
|
||||
*
|
||||
* @param path 相对ClassPath路径或绝对路径
|
||||
* @param clazz 基准类
|
||||
* @param charset 字符集
|
||||
*
|
||||
* @param path 相对ClassPath路径或绝对路径
|
||||
* @param clazz 基准类
|
||||
* @param charset 字符集
|
||||
* @param isUseVariable 是否使用变量
|
||||
*/
|
||||
public Setting(String path, Class<?> clazz, Charset charset, boolean isUseVariable) {
|
||||
@@ -131,9 +143,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param url 设定文件的URL
|
||||
* @param charset 字符集
|
||||
*
|
||||
* @param url 设定文件的URL
|
||||
* @param charset 字符集
|
||||
* @param isUseVariable 是否使用变量
|
||||
*/
|
||||
public Setting(URL url, Charset charset, boolean isUseVariable) {
|
||||
@@ -144,9 +156,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 初始化设定文件
|
||||
*
|
||||
* @param resource {@link Resource}
|
||||
* @param charset 字符集
|
||||
*
|
||||
* @param resource {@link Resource}
|
||||
* @param charset 字符集
|
||||
* @param isUseVariable 是否使用变量
|
||||
* @return 成功初始化与否
|
||||
*/
|
||||
@@ -163,7 +175,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 重新加载配置文件
|
||||
*
|
||||
*
|
||||
* @return 是否加载成功
|
||||
*/
|
||||
synchronized public boolean load() {
|
||||
@@ -175,7 +187,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 在配置文件变更时自动加载
|
||||
*
|
||||
*
|
||||
* @param autoReload 是否自动加载
|
||||
*/
|
||||
public void autoLoad(boolean autoReload) {
|
||||
@@ -208,7 +220,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 键值总数
|
||||
*
|
||||
*
|
||||
* @return 键值总数
|
||||
*/
|
||||
public int size() {
|
||||
@@ -222,7 +234,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找
|
||||
*
|
||||
*
|
||||
* @param keys 键列表,常用于别名
|
||||
* @return 值
|
||||
* @since 3.1.2
|
||||
@@ -240,7 +252,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找
|
||||
*
|
||||
*
|
||||
* @param keys 键列表,常用于别名
|
||||
* @return 字符串值
|
||||
* @since 3.1.2
|
||||
@@ -258,7 +270,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获得指定分组的所有键值对,此方法获取的是原始键值对,获取的键值对可以被修改
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return map
|
||||
*/
|
||||
@@ -269,7 +281,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取group分组下所有配置键值对,组成新的{@link Setting}
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return {@link Setting}
|
||||
*/
|
||||
@@ -281,7 +293,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取group分组下所有配置键值对,组成新的{@link Properties}
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return Properties对象
|
||||
*/
|
||||
@@ -293,7 +305,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取group分组下所有配置键值对,组成新的{@link Props}
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return Props对象
|
||||
* @since 4.1.21
|
||||
@@ -305,10 +317,11 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------- Functions
|
||||
|
||||
/**
|
||||
* 持久化当前设置,会覆盖掉之前的设置<br>
|
||||
* 持久化不会保留之前的分组
|
||||
*
|
||||
*
|
||||
* @param absolutePath 设置文件的绝对路径
|
||||
*/
|
||||
public void store(String absolutePath) {
|
||||
@@ -320,7 +333,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 转换为Properties对象,原分组变为前缀
|
||||
*
|
||||
*
|
||||
* @return Properties对象
|
||||
*/
|
||||
public Properties toProperties() {
|
||||
@@ -337,7 +350,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取GroupedMap
|
||||
*
|
||||
*
|
||||
* @return GroupedMap
|
||||
* @since 4.0.12
|
||||
*/
|
||||
@@ -347,7 +360,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取所有分组
|
||||
*
|
||||
*
|
||||
* @return 获得所有分组名
|
||||
*/
|
||||
public List<String> getGroups() {
|
||||
@@ -357,8 +370,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
/**
|
||||
* 设置变量的正则<br>
|
||||
* 正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示
|
||||
*
|
||||
*
|
||||
* @param regex 正则
|
||||
* @return this
|
||||
*/
|
||||
public Setting setVarRegex(String regex) {
|
||||
if (null == this.settingLoader) {
|
||||
@@ -367,10 +381,10 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
this.settingLoader.setVarRegex(regex);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 自定义字符编码
|
||||
*
|
||||
*
|
||||
* @param charset 字符编码
|
||||
* @return this
|
||||
* @since 4.6.2
|
||||
@@ -381,9 +395,10 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
}
|
||||
|
||||
// ------------------------------------------------- Map interface with group
|
||||
|
||||
/**
|
||||
* 某个分组对应的键值对是否为空
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return 是否为空
|
||||
*/
|
||||
@@ -393,9 +408,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 指定分组中是否包含指定key
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @param key 键
|
||||
* @param key 键
|
||||
* @return 是否包含key
|
||||
*/
|
||||
public boolean containsKey(String group, String key) {
|
||||
@@ -404,7 +419,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 指定分组中是否包含指定值
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @param value 值
|
||||
* @return 是否包含值
|
||||
@@ -415,9 +430,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取分组对应的值,如果分组不存在或者值不存在则返回null
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @param key 键
|
||||
* @param key 键
|
||||
* @return 值,如果分组不存在或者值不存在则返回null
|
||||
*/
|
||||
public String get(String group, String key) {
|
||||
@@ -426,9 +441,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 将键值对加入到对应分组中
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @param key 键
|
||||
* @param key 键
|
||||
* @param value 值
|
||||
* @return 此key之前存在的值,如果没有返回null
|
||||
*/
|
||||
@@ -438,9 +453,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 从指定分组中删除指定值
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @param key 键
|
||||
* @param key 键
|
||||
* @return 被删除的值,如果值不存在,返回null
|
||||
*/
|
||||
public String remove(String group, Object key) {
|
||||
@@ -449,9 +464,9 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 加入多个键值对到某个分组下
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @param m 键值对
|
||||
* @param m 键值对
|
||||
* @return this
|
||||
*/
|
||||
public Setting putAll(String group, Map<? extends String, ? extends String> m) {
|
||||
@@ -461,7 +476,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 清除指定分组下的所有键值对
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return this
|
||||
*/
|
||||
@@ -472,7 +487,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 指定分组所有键的Set
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return 键Set
|
||||
*/
|
||||
@@ -482,7 +497,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 指定分组下所有值
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return 值
|
||||
*/
|
||||
@@ -492,18 +507,18 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 指定分组下所有键值对
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @return 键值对
|
||||
*/
|
||||
public Set<Entry<String, String>> entrySet(String group) {
|
||||
return this.groupedMap.entrySet(group);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置值
|
||||
*
|
||||
* @param key 键
|
||||
*
|
||||
* @param key 键
|
||||
* @param value 值
|
||||
* @return this
|
||||
* @since 3.3.1
|
||||
@@ -512,12 +527,12 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
this.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将键值对加入到对应分组中
|
||||
*
|
||||
*
|
||||
* @param group 分组
|
||||
* @param key 键
|
||||
* @param key 键
|
||||
* @param value 值
|
||||
* @return 此key之前存在的值,如果没有返回null
|
||||
*/
|
||||
@@ -534,7 +549,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 默认分组(空分组)中是否包含指定key对应的值
|
||||
*
|
||||
*
|
||||
* @param key 键
|
||||
* @return 默认分组中是否包含指定key对应的值
|
||||
*/
|
||||
@@ -545,7 +560,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 默认分组(空分组)中是否包含指定值
|
||||
*
|
||||
*
|
||||
* @param value 值
|
||||
* @return 默认分组中是否包含指定值
|
||||
*/
|
||||
@@ -556,7 +571,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取默认分组(空分组)中指定key对应的值
|
||||
*
|
||||
*
|
||||
* @param key 键
|
||||
* @return 默认分组(空分组)中指定key对应的值
|
||||
*/
|
||||
@@ -567,8 +582,8 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 将指定键值对加入到默认分组(空分组)中
|
||||
*
|
||||
* @param key 键
|
||||
*
|
||||
* @param key 键
|
||||
* @param value 值
|
||||
* @return 加入的值
|
||||
*/
|
||||
@@ -579,7 +594,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 移除默认分组(空分组)中指定值
|
||||
*
|
||||
*
|
||||
* @param key 键
|
||||
* @return 移除的值
|
||||
*/
|
||||
@@ -590,7 +605,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 将键值对Map加入默认分组(空分组)中
|
||||
*
|
||||
*
|
||||
* @param m Map
|
||||
*/
|
||||
@Override
|
||||
@@ -608,7 +623,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取默认分组(空分组)中的所有键列表
|
||||
*
|
||||
*
|
||||
* @return 默认分组(空分组)中的所有键列表
|
||||
*/
|
||||
@Override
|
||||
@@ -618,7 +633,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取默认分组(空分组)中的所有值列表
|
||||
*
|
||||
*
|
||||
* @return 默认分组(空分组)中的所有值列表
|
||||
*/
|
||||
@Override
|
||||
@@ -628,7 +643,7 @@ public class Setting extends AbsSetting implements Map<String, String> {
|
||||
|
||||
/**
|
||||
* 获取默认分组(空分组)中的所有键值对列表
|
||||
*
|
||||
*
|
||||
* @return 默认分组(空分组)中的所有键值对列表
|
||||
*/
|
||||
@Override
|
||||
|
@@ -484,7 +484,8 @@ public final class Props extends Properties implements BasicTypeGetter<String>,
|
||||
* person.friends[5].name
|
||||
* ['person']['friends'][5]['name']
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @param <T> Bean类型
|
||||
* @param beanClass Bean类
|
||||
* @return Bean对象
|
||||
* @since 4.6.3
|
||||
@@ -504,7 +505,8 @@ public final class Props extends Properties implements BasicTypeGetter<String>,
|
||||
* person.friends[5].name
|
||||
* ['person']['friends'][5]['name']
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @param <T> Bean类型
|
||||
* @param beanClass Bean类
|
||||
* @param prefix 公共前缀,不指定前缀传null,当指定前缀后非此前缀的属性被忽略
|
||||
* @return Bean对象
|
||||
@@ -526,7 +528,8 @@ public final class Props extends Properties implements BasicTypeGetter<String>,
|
||||
* person.friends[5].name
|
||||
* ['person']['friends'][5]['name']
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @param <T> Bean类型
|
||||
* @param bean Bean对象
|
||||
* @param prefix 公共前缀,不指定前缀传null,当指定前缀后非此前缀的属性被忽略
|
||||
* @return Bean对象
|
||||
|
Reference in New Issue
Block a user