mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 17:08:40 +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.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<String, Object> 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<SmsBlend, SupplierConfig> providerFactory = (BaseProviderFactory<SmsBlend, org.dromara.sms4j.api.universal.SupplierConfig>) 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<String, Object> 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<SmsBlend, SupplierConfig> providerFactory = (BaseProviderFactory<SmsBlend, org.dromara.sms4j.api.universal.SupplierConfig>) 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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<String, Map<String, Object>> blends(){
|
||||
protected Map<String, Map<String, Object>> blends() {
|
||||
return new LinkedHashMap<>();
|
||||
}
|
||||
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(prefix = "sms", name = "config-type", havingValue = "yaml")
|
||||
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
|
||||
SmsConfig smsConfig,
|
||||
Map<String, Map<String, Object>> blends){
|
||||
return new SmsBlendsInitializer(factoryList,smsConfig,blends);
|
||||
}
|
||||
@Bean
|
||||
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
|
||||
SmsConfig smsConfig,
|
||||
Map<String, Map<String, Object>> blends) {
|
||||
return new SmsBlendsInitializer(factoryList, smsConfig, blends);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user