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); + } }