This commit is contained in:
Looly
2020-04-11 13:08:46 +08:00
parent 73fd3b849f
commit bc486cdac4
207 changed files with 1329 additions and 1355 deletions

View File

@@ -1,5 +1,12 @@
package cn.hutool.setting;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
@@ -13,13 +20,6 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
/**
* 分组化的Set集合类<br>
* 在配置文件中可以用中括号分隔不同的分组每个分组会放在独立的Set中用group区别<br>
@@ -94,9 +94,6 @@ public class GroupedSet extends HashMap<String, LinkedHashSet<String>> {
throw new RuntimeException("Null GroupSet file!");
}
final URL url = URLUtil.getURL(configFile);
if (url == null) {
throw new RuntimeException(StrUtil.format("Can not find GroupSet file: [{}]", configFile.getAbsolutePath()));
}
this.init(url, charset);
}

View File

@@ -8,7 +8,6 @@ import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import java.io.BufferedReader;
import java.io.IOException;
@@ -28,7 +27,7 @@ import java.util.Set;
*
*/
public class SettingLoader {
private static Log log = LogFactory.get();
private static final Log log = Log.get();
/** 注释符号(当有此符号在行首,表示此行为注释) */
private final static char COMMENT_FLAG_PRE = '#';
@@ -38,11 +37,11 @@ public class SettingLoader {
private String varRegex = "\\$\\{(.*?)\\}";
/** 本设置对象的字符集 */
private Charset charset;
private final Charset charset;
/** 是否使用变量 */
private boolean isUseVariable;
private final boolean isUseVariable;
/** GroupedMap */
private GroupedMap groupedMap;
private final GroupedMap groupedMap;
/**
* 构造

View File

@@ -17,8 +17,7 @@ public class SettingUtil {
/**
* 配置文件缓存
*/
private static Map<String, Setting> settingMap = new ConcurrentHashMap<>();
private static final Object lock = new Object();
private static final Map<String, Setting> SETTING_MAP = new ConcurrentHashMap<>();
/**
* 获取当前环境下的配置文件<br>
@@ -28,10 +27,10 @@ public class SettingUtil {
* @return 当前环境下配置文件
*/
public static Setting get(String name) {
Setting setting = settingMap.get(name);
Setting setting = SETTING_MAP.get(name);
if (null == setting) {
synchronized (lock) {
setting = settingMap.get(name);
synchronized (SettingUtil.class) {
setting = SETTING_MAP.get(name);
if (null == setting) {
String filePath = name;
String extName = FileUtil.extName(filePath);
@@ -39,7 +38,7 @@ public class SettingUtil {
filePath = filePath + "." + Setting.EXT_NAME;
}
setting = new Setting(filePath, true);
settingMap.put(name, setting);
SETTING_MAP.put(name, setting);
}
}
}

View File

@@ -19,7 +19,7 @@ public class PropsUtil {
/**
* 配置文件缓存
*/
private static Map<String, Props> propsMap = new ConcurrentHashMap<>();
private static final Map<String, Props> propsMap = new ConcurrentHashMap<>();
private static final Object lock = new Object();
/**

View File

@@ -1,14 +1,14 @@
package cn.hutool.setting.profile;
import cn.hutool.core.lang.Assert;
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;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import cn.hutool.setting.Setting;
/**
* Profile可以让我们定义一系列的配置信息然后指定其激活条件。<br>
* 此类中我们规范一套规则如下:<br>
@@ -36,7 +36,7 @@ public class Profile implements Serializable {
/** 是否使用变量 */
private boolean useVar;
/** 配置文件缓存 */
private Map<String, Setting> settingMap = new ConcurrentHashMap<>();
private final Map<String, Setting> settingMap = new ConcurrentHashMap<>();
// -------------------------------------------------------------------------------- Constructor start
/**

View File

@@ -21,7 +21,9 @@ public class SettingUtilTest {
@Test
public void getFirstFoundTest() {
String driver = SettingUtil.getFirstFound("test2", "test").get("demo", "driver");
//noinspection ConstantConditions
String driver = SettingUtil.getFirstFound("test2", "test")
.get("demo", "driver");
Assert.assertEquals("com.mysql.jdbc.Driver", driver);
}
}