From e2fde737bf0dd521722b35e0ee5045e6ed3da86e Mon Sep 17 00:00:00 2001 From: heng <835217326@qq.com> Date: Tue, 10 Oct 2023 14:38:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9configType=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=BAyaml=EF=BC=8C=E6=B2=A1=E6=9C=89=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=85=A8=E5=B1=80=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starter/config/SmsBlendsInitializer.java | 41 ++++++++++--------- .../sms4j/starter/config/SupplierConfig.java | 19 +++++---- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java index 5b0d71fd..8acdb2ca 100644 --- a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java +++ b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java @@ -9,6 +9,7 @@ import org.dromara.sms4j.api.SmsBlend; import org.dromara.sms4j.api.universal.SupplierConfig; import org.dromara.sms4j.cloopen.config.CloopenFactory; import org.dromara.sms4j.comm.constant.Constant; +import org.dromara.sms4j.comm.enumerate.ConfigType; import org.dromara.sms4j.comm.utils.SmsUtils; import org.dromara.sms4j.core.factory.SmsFactory; import org.dromara.sms4j.core.proxy.SmsInvocationHandler; @@ -51,25 +52,27 @@ public class SmsBlendsInitializer { this.registerDefaultFactory(); // 注册短信对象工厂 ProviderFactoryHolder.registerFactory(factoryList); - // 解析供应商配置 - for(String configId : blends.keySet()) { - Map configMap = blends.get(configId); - Object supplierObj = configMap.get(Constant.SUPPLIER_KEY); - String supplier = supplierObj == null ? "" : String.valueOf(supplierObj); - supplier = StrUtil.isEmpty(supplier) ? configId : supplier; - BaseProviderFactory providerFactory = (BaseProviderFactory) ProviderFactoryHolder.requireForSupplier(supplier); - if(providerFactory == null) { - log.warn("创建\"{}\"的短信服务失败,未找到供应商为\"{}\"的服务", configId, supplier); - continue; - } - configMap.put("config-id", configId); - SmsUtils.replaceKeysSeperator(configMap, "-", "_"); - JSONObject configJson = new JSONObject(configMap); - org.dromara.sms4j.api.universal.SupplierConfig supplierConfig = JSONUtil.toBean(configJson, providerFactory.getConfigClass()); - if(Boolean.TRUE.equals(smsConfig.getRestricted())) { - SmsFactory.createRestrictedSmsBlend(supplierConfig); - } else { - SmsFactory.createSmsBlend(supplierConfig); + if(ConfigType.YAML.equals(this.smsConfig.getConfigType())) { + // 解析供应商配置 + for(String configId : blends.keySet()) { + Map configMap = blends.get(configId); + Object supplierObj = configMap.get(Constant.SUPPLIER_KEY); + String supplier = supplierObj == null ? "" : String.valueOf(supplierObj); + supplier = StrUtil.isEmpty(supplier) ? configId : supplier; + BaseProviderFactory providerFactory = (BaseProviderFactory) ProviderFactoryHolder.requireForSupplier(supplier); + if(providerFactory == null) { + log.warn("创建\"{}\"的短信服务失败,未找到供应商为\"{}\"的服务", configId, supplier); + continue; + } + configMap.put("config-id", configId); + SmsUtils.replaceKeysSeperator(configMap, "-", "_"); + JSONObject configJson = new JSONObject(configMap); + org.dromara.sms4j.api.universal.SupplierConfig supplierConfig = JSONUtil.toBean(configJson, providerFactory.getConfigClass()); + if(Boolean.TRUE.equals(smsConfig.getRestricted())) { + SmsFactory.createRestrictedSmsBlend(supplierConfig); + } else { + SmsFactory.createSmsBlend(supplierConfig); + } } } diff --git a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java index e6155101..a6a05886 100644 --- a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java +++ b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SupplierConfig.java @@ -13,21 +13,22 @@ import java.util.Map; public class SupplierConfig { - /** 注入配置*/ + /** + * 注入配置 + */ @Bean @ConfigurationProperties(prefix = "sms.blends") @ConditionalOnProperty(prefix = "sms", name = "config-type", havingValue = "yaml") - protected Map> blends(){ + protected Map> blends() { return new LinkedHashMap<>(); } - @Bean - @ConditionalOnProperty(prefix = "sms", name = "config-type", havingValue = "yaml") - protected SmsBlendsInitializer smsBlendsInitializer(List> factoryList, - SmsConfig smsConfig, - Map> blends){ - return new SmsBlendsInitializer(factoryList,smsConfig,blends); - } + @Bean + protected SmsBlendsInitializer smsBlendsInitializer(List> factoryList, + SmsConfig smsConfig, + Map> blends) { + return new SmsBlendsInitializer(factoryList, smsConfig, blends); + } }