mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix code
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
/**
|
||||
* 构造
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
|
||||
/**
|
||||
|
@@ -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
|
||||
/**
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user