diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java
index f4edb246b..6dac5ce97 100644
--- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java
+++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java
@@ -12,12 +12,11 @@
package org.dromara.hutool.core.lang;
-import org.dromara.hutool.core.classloader.ClassLoaderUtil;
+import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.func.SerSupplier;
import org.dromara.hutool.core.map.SafeConcurrentHashMap;
import org.dromara.hutool.core.reflect.ConstructorUtil;
import org.dromara.hutool.core.text.StrUtil;
-import org.dromara.hutool.core.array.ArrayUtil;
import java.util.Set;
import java.util.stream.Collectors;
@@ -66,21 +65,6 @@ public final class Singleton {
return (T) POOL.computeIfAbsent(key, (k)-> supplier.get());
}
- /**
- * 获得指定类的单例对象
- * 对象存在于池中返回,否则创建,每次调用此方法获得的对象为同一个对象
- *
- * @param 单例对象类型
- * @param className 类名
- * @param params 构造参数
- * @return 单例对象
- */
- public static T get(final String className, final Object... params) {
- Assert.notBlank(className, "Class name must be not blank !");
- final Class clazz = ClassLoaderUtil.loadClass(className);
- return get(clazz, params);
- }
-
/**
* 将已有对象放入单例中,其Class做为键
*
diff --git a/hutool-db/src/test/java/org/dromara/hutool/db/GlobalDbConfigTest.java b/hutool-db/src/test/java/org/dromara/hutool/db/GlobalDbConfigTest.java
new file mode 100644
index 000000000..907048e16
--- /dev/null
+++ b/hutool-db/src/test/java/org/dromara/hutool/db/GlobalDbConfigTest.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2023 looly(loolly@aliyun.com)
+ * Hutool is licensed under Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ */
+
+package org.dromara.hutool.db;
+
+import org.dromara.hutool.setting.Setting;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class GlobalDbConfigTest {
+ @Test
+ void loadSettingTest() {
+ final Setting dbSetting = GlobalDbConfig.createDbSetting();
+ Assertions.assertNotNull(dbSetting);
+ }
+}
diff --git a/hutool-db/src/test/java/org/dromara/hutool/db/IssueI73770Test.java b/hutool-db/src/test/java/org/dromara/hutool/db/IssueI73770Test.java
new file mode 100644
index 000000000..b20b739b6
--- /dev/null
+++ b/hutool-db/src/test/java/org/dromara/hutool/db/IssueI73770Test.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2023 looly(loolly@aliyun.com)
+ * Hutool is licensed under Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ */
+
+package org.dromara.hutool.db;
+
+import org.dromara.hutool.db.ds.DSUtil;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+
+public class IssueI73770Test {
+
+ @Test
+ @Disabled
+ void pageTest() {
+ DSUtil.getDS("mysql");
+ }
+}
diff --git a/hutool-log/src/main/java/org/dromara/hutool/log/LogFactory.java b/hutool-log/src/main/java/org/dromara/hutool/log/LogFactory.java
index 934eb2acd..f0ca07624 100644
--- a/hutool-log/src/main/java/org/dromara/hutool/log/LogFactory.java
+++ b/hutool-log/src/main/java/org/dromara/hutool/log/LogFactory.java
@@ -12,7 +12,6 @@
package org.dromara.hutool.log;
-import org.dromara.hutool.core.lang.Singleton;
import org.dromara.hutool.log.engine.LogEngineFactory;
/**
@@ -29,7 +28,7 @@ public abstract class LogFactory {
* @return 日志对象
*/
public static Log getLog(final String name) {
- return Singleton.get(name, () -> LogEngineFactory.getEngine().createLog(name));
+ return LogEngineFactory.getEngine().getLog(name);
}
/**
@@ -39,6 +38,6 @@ public abstract class LogFactory {
* @return 日志对象
*/
public static Log getLog(final Class> clazz) {
- return Singleton.get(clazz.getName(), () -> LogEngineFactory.getEngine().createLog(clazz));
+ return LogEngineFactory.getEngine().getLog(clazz);
}
}
diff --git a/hutool-log/src/main/java/org/dromara/hutool/log/engine/LogEngine.java b/hutool-log/src/main/java/org/dromara/hutool/log/engine/LogEngine.java
index 4ab93c343..2dcaffb9e 100755
--- a/hutool-log/src/main/java/org/dromara/hutool/log/engine/LogEngine.java
+++ b/hutool-log/src/main/java/org/dromara/hutool/log/engine/LogEngine.java
@@ -12,6 +12,7 @@
package org.dromara.hutool.log.engine;
+import org.dromara.hutool.core.lang.Singleton;
import org.dromara.hutool.log.Log;
/**
@@ -44,4 +45,26 @@ public interface LogEngine {
* @return 日志对象
*/
Log createLog(Class> clazz);
+
+ /**
+ * 获得日志对象(单例)
+ *
+ * @param name 日志对象名
+ * @return 日志对象
+ */
+ default Log getLog(final String name) {
+ // 将引擎名称和日期名称关联,以便在引擎更换后重新获取引擎。
+ return Singleton.get(getName() + name, () -> createLog(name));
+ }
+
+ /**
+ * 获得日志对象(单例)
+ *
+ * @param clazz 日志对应类
+ * @return 日志对象
+ */
+ default Log getLog(final Class> clazz) {
+ // 将引擎名称和日期名称关联,以便在引擎更换后重新获取引擎。
+ return Singleton.get(getName() + clazz.getName(), () -> createLog(clazz));
+ }
}
diff --git a/hutool-log/src/test/java/org/dromara/hutool/log/LogTest.java b/hutool-log/src/test/java/org/dromara/hutool/log/LogTest.java
index 57c3b5b11..55060d032 100644
--- a/hutool-log/src/test/java/org/dromara/hutool/log/LogTest.java
+++ b/hutool-log/src/test/java/org/dromara/hutool/log/LogTest.java
@@ -39,4 +39,9 @@ public class LogTest {
log.info(null);
log.warn(null);
}
+
+ @Test
+ void getLogByClassTest() {
+ Log.get(LogTest.class);
+ }
}
diff --git a/hutool-log/src/test/java/org/dromara/hutool/log/StaticLogTest.java b/hutool-log/src/test/java/org/dromara/hutool/log/StaticLogTest.java
new file mode 100644
index 000000000..ac4220b8a
--- /dev/null
+++ b/hutool-log/src/test/java/org/dromara/hutool/log/StaticLogTest.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2023 looly(loolly@aliyun.com)
+ * Hutool is licensed under Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ */
+
+package org.dromara.hutool.log;
+
+import org.junit.jupiter.api.Test;
+
+public class StaticLogTest {
+ private static final Log log = Log.get();
+
+ @Test
+ void infoTest() {
+ log.info("Static final Logger test");
+ }
+}