diff --git a/src/main/java/com/cool/core/plugin/service/CoolPluginService.java b/src/main/java/com/cool/core/plugin/service/CoolPluginService.java index f6f8756..16b57d4 100644 --- a/src/main/java/com/cool/core/plugin/service/CoolPluginService.java +++ b/src/main/java/com/cool/core/plugin/service/CoolPluginService.java @@ -328,9 +328,16 @@ public class CoolPluginService { } /** - * 获取插件实例对象 + * 获取插件实例对象,插件未找到,抛出异常 */ public Object getInstance(String key) { return dynamicJarLoaderService.getBeanInstance(key); } + + /** + * 获取插件实例对象,插件未找到,不抛出异常 + */ + public Object getInstanceWithoutCheck(String key) { + return dynamicJarLoaderService.getInstanceWithoutCheck(key); + } } \ No newline at end of file diff --git a/src/main/java/com/cool/core/plugin/service/DynamicJarLoaderService.java b/src/main/java/com/cool/core/plugin/service/DynamicJarLoaderService.java index ffc4ce6..281a135 100644 --- a/src/main/java/com/cool/core/plugin/service/DynamicJarLoaderService.java +++ b/src/main/java/com/cool/core/plugin/service/DynamicJarLoaderService.java @@ -166,17 +166,23 @@ public class DynamicJarLoaderService { } /** - * 获取插件实例对象 + * 获取插件实例对象,插件未找到,抛出异常 */ public Object getBeanInstance(String key) { + Object instance = getInstanceWithoutCheck(key); + CoolPreconditions.checkEmpty(instance,"插件 {} 未找到", key); + return instance; + } + /** + * 获取插件实例对象,插件未找到,不抛出异常 + */ + public Object getInstanceWithoutCheck(String key) { CoolPreconditions.checkEmpty(key, "插件key is null"); if (pluginMap.containsKey(key)) { return pluginMap.get(key); } - CoolPreconditions.alwaysThrow("插件 {} 未找到", key); return null; } - /** * 获取自定义类加载器 */ diff --git a/src/main/java/com/cool/modules/user/util/UserSmsUtil.java b/src/main/java/com/cool/modules/user/util/UserSmsUtil.java index cb39a54..43c5aff 100644 --- a/src/main/java/com/cool/modules/user/util/UserSmsUtil.java +++ b/src/main/java/com/cool/modules/user/util/UserSmsUtil.java @@ -76,10 +76,10 @@ public class UserSmsUtil { Map params = new HashMap<>(); params.put("code", code); // 插件key sms-tx、sms-ali,哪个实例存在就调用哪个 - if (coolPluginService.getInstance("sms-tx") != null) { + if (coolPluginService.getInstanceWithoutCheck("sms-tx") != null) { // 调用腾讯短信插件 CoolPluginInvokers.invoke("sms-tx", "send", phones, params); - } else if (coolPluginService.getInstance("sms-ali") != null) { + } else if (coolPluginService.getInstanceWithoutCheck("sms-ali") != null) { // 调用阿里短信插件 CoolPluginInvokers.invoke("sms-ali", "send", phones, params); } else {