mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-07 09:29:08 +08:00
修改configType设置为yaml,没有正确初始化全局配置的问题
This commit is contained in:
parent
5ec641c35d
commit
e2fde737bf
@ -9,6 +9,7 @@ import org.dromara.sms4j.api.SmsBlend;
|
|||||||
import org.dromara.sms4j.api.universal.SupplierConfig;
|
import org.dromara.sms4j.api.universal.SupplierConfig;
|
||||||
import org.dromara.sms4j.cloopen.config.CloopenFactory;
|
import org.dromara.sms4j.cloopen.config.CloopenFactory;
|
||||||
import org.dromara.sms4j.comm.constant.Constant;
|
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.comm.utils.SmsUtils;
|
||||||
import org.dromara.sms4j.core.factory.SmsFactory;
|
import org.dromara.sms4j.core.factory.SmsFactory;
|
||||||
import org.dromara.sms4j.core.proxy.SmsInvocationHandler;
|
import org.dromara.sms4j.core.proxy.SmsInvocationHandler;
|
||||||
@ -51,25 +52,27 @@ public class SmsBlendsInitializer {
|
|||||||
this.registerDefaultFactory();
|
this.registerDefaultFactory();
|
||||||
// 注册短信对象工厂
|
// 注册短信对象工厂
|
||||||
ProviderFactoryHolder.registerFactory(factoryList);
|
ProviderFactoryHolder.registerFactory(factoryList);
|
||||||
// 解析供应商配置
|
if(ConfigType.YAML.equals(this.smsConfig.getConfigType())) {
|
||||||
for(String configId : blends.keySet()) {
|
// 解析供应商配置
|
||||||
Map<String, Object> configMap = blends.get(configId);
|
for(String configId : blends.keySet()) {
|
||||||
Object supplierObj = configMap.get(Constant.SUPPLIER_KEY);
|
Map<String, Object> configMap = blends.get(configId);
|
||||||
String supplier = supplierObj == null ? "" : String.valueOf(supplierObj);
|
Object supplierObj = configMap.get(Constant.SUPPLIER_KEY);
|
||||||
supplier = StrUtil.isEmpty(supplier) ? configId : supplier;
|
String supplier = supplierObj == null ? "" : String.valueOf(supplierObj);
|
||||||
BaseProviderFactory<SmsBlend, SupplierConfig> providerFactory = (BaseProviderFactory<SmsBlend, org.dromara.sms4j.api.universal.SupplierConfig>) ProviderFactoryHolder.requireForSupplier(supplier);
|
supplier = StrUtil.isEmpty(supplier) ? configId : supplier;
|
||||||
if(providerFactory == null) {
|
BaseProviderFactory<SmsBlend, SupplierConfig> providerFactory = (BaseProviderFactory<SmsBlend, org.dromara.sms4j.api.universal.SupplierConfig>) ProviderFactoryHolder.requireForSupplier(supplier);
|
||||||
log.warn("创建\"{}\"的短信服务失败,未找到供应商为\"{}\"的服务", configId, supplier);
|
if(providerFactory == null) {
|
||||||
continue;
|
log.warn("创建\"{}\"的短信服务失败,未找到供应商为\"{}\"的服务", configId, supplier);
|
||||||
}
|
continue;
|
||||||
configMap.put("config-id", configId);
|
}
|
||||||
SmsUtils.replaceKeysSeperator(configMap, "-", "_");
|
configMap.put("config-id", configId);
|
||||||
JSONObject configJson = new JSONObject(configMap);
|
SmsUtils.replaceKeysSeperator(configMap, "-", "_");
|
||||||
org.dromara.sms4j.api.universal.SupplierConfig supplierConfig = JSONUtil.toBean(configJson, providerFactory.getConfigClass());
|
JSONObject configJson = new JSONObject(configMap);
|
||||||
if(Boolean.TRUE.equals(smsConfig.getRestricted())) {
|
org.dromara.sms4j.api.universal.SupplierConfig supplierConfig = JSONUtil.toBean(configJson, providerFactory.getConfigClass());
|
||||||
SmsFactory.createRestrictedSmsBlend(supplierConfig);
|
if(Boolean.TRUE.equals(smsConfig.getRestricted())) {
|
||||||
} else {
|
SmsFactory.createRestrictedSmsBlend(supplierConfig);
|
||||||
SmsFactory.createSmsBlend(supplierConfig);
|
} else {
|
||||||
|
SmsFactory.createSmsBlend(supplierConfig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,21 +13,22 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class SupplierConfig {
|
public class SupplierConfig {
|
||||||
|
|
||||||
/** 注入配置*/
|
/**
|
||||||
|
* 注入配置
|
||||||
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@ConfigurationProperties(prefix = "sms.blends")
|
@ConfigurationProperties(prefix = "sms.blends")
|
||||||
@ConditionalOnProperty(prefix = "sms", name = "config-type", havingValue = "yaml")
|
@ConditionalOnProperty(prefix = "sms", name = "config-type", havingValue = "yaml")
|
||||||
protected Map<String, Map<String, Object>> blends(){
|
protected Map<String, Map<String, Object>> blends() {
|
||||||
return new LinkedHashMap<>();
|
return new LinkedHashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnProperty(prefix = "sms", name = "config-type", havingValue = "yaml")
|
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
|
||||||
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
|
SmsConfig smsConfig,
|
||||||
SmsConfig smsConfig,
|
Map<String, Map<String, Object>> blends) {
|
||||||
Map<String, Map<String, Object>> blends){
|
return new SmsBlendsInitializer(factoryList, smsConfig, blends);
|
||||||
return new SmsBlendsInitializer(factoryList,smsConfig,blends);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user