增加SafeConcurrentHashMap

This commit is contained in:
Looly
2022-09-15 09:50:54 +08:00
parent 920fe44e50
commit 06fec1045c
31 changed files with 168 additions and 105 deletions

View File

@@ -2,10 +2,10 @@ package cn.hutool.setting;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.io.resource.NoResourceException;
import cn.hutool.core.map.SafeConcurrentHashMap;
import cn.hutool.core.util.StrUtil;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Setting工具类<br>
@@ -17,7 +17,7 @@ public class SettingUtil {
/**
* 配置文件缓存
*/
private static final Map<String, Setting> SETTING_MAP = new ConcurrentHashMap<>();
private static final Map<String, Setting> SETTING_MAP = new SafeConcurrentHashMap<>();
/**
* 获取当前环境下的配置文件<br>

View File

@@ -2,10 +2,10 @@ package cn.hutool.setting.dialect;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.resource.NoResourceException;
import cn.hutool.core.map.SafeConcurrentHashMap;
import cn.hutool.core.util.StrUtil;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Props工具类<br>
@@ -19,7 +19,7 @@ public class PropsUtil {
/**
* 配置文件缓存
*/
private static final Map<String, Props> propsMap = new ConcurrentHashMap<>();
private static final Map<String, Props> propsMap = new SafeConcurrentHashMap<>();
/**
* 获取当前环境下的配置文件<br>

View File

@@ -1,13 +1,13 @@
package cn.hutool.setting.profile;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.SafeConcurrentHashMap;
import cn.hutool.core.util.StrUtil;
import cn.hutool.setting.Setting;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Profile可以让我们定义一系列的配置信息然后指定其激活条件。<br>
@@ -19,7 +19,7 @@ import java.util.concurrent.ConcurrentHashMap;
* <li>develop =》 ${classpath}/develop/db.setting</li>
* <li>production =》 ${classpath}/production/db.setting</li>
* </ol>
*
*
* @author Looly
*
*/
@@ -36,7 +36,7 @@ public class Profile implements Serializable {
/** 是否使用变量 */
private boolean useVar;
/** 配置文件缓存 */
private final Map<String, Setting> settingMap = new ConcurrentHashMap<>();
private final Map<String, Setting> settingMap = new SafeConcurrentHashMap<>();
// -------------------------------------------------------------------------------- Constructor start
/**
@@ -48,7 +48,7 @@ public class Profile implements Serializable {
/**
* 构造编码UTF-8不使用变量
*
*
* @param profile 环境
*/
public Profile(String profile) {
@@ -57,7 +57,7 @@ public class Profile implements Serializable {
/**
* 构造
*
*
* @param profile 环境
* @param charset 编码
* @param useVar 是否使用变量
@@ -71,7 +71,7 @@ public class Profile implements Serializable {
/**
* 获取当前环境下的配置文件
*
*
* @param name 文件名,如果没有扩展名,默认为.setting
* @return 当前环境下配置文件
*/
@@ -87,7 +87,7 @@ public class Profile implements Serializable {
/**
* 设置环境
*
*
* @param profile 环境
* @return 自身
*/
@@ -98,7 +98,7 @@ public class Profile implements Serializable {
/**
* 设置编码
*
*
* @param charset 编码
* @return 自身
*/
@@ -109,7 +109,7 @@ public class Profile implements Serializable {
/**
* 设置是否使用变量
*
*
* @param useVar 变量
* @return 自身
*/
@@ -120,7 +120,7 @@ public class Profile implements Serializable {
/**
* 清空所有环境的配置文件
*
*
* @return 自身
*/
public Profile clear() {
@@ -131,7 +131,7 @@ public class Profile implements Serializable {
// -------------------------------------------------------------------------------- Private method start
/**
* 修正文件名
*
*
* @param name 文件名
* @return 修正后的文件名
*/