sms4j-solon-plugin: 优化 SupplierConfig 处理

This commit is contained in:
noear 2024-05-08 12:24:20 +08:00
parent a5f7ba37a4
commit 525166c102

View File

@ -9,6 +9,7 @@ import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;
import org.noear.solon.core.AppContext;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -16,7 +17,7 @@ import java.util.Map;
/**
* smsConfig参数意义为确保注入时smsConfig已经存在
*/
@Condition(onProperty = "${sms.configType}=config_file")
@Condition(onProperty = "${sms.configType}=yaml")
@Configuration
public class SupplierConfig {
@Inject
@ -27,16 +28,25 @@ public class SupplierConfig {
context.cfg().getProp(prefix).bindTo(obj);
return obj;
}
@Bean
protected Map<String, Map<String, Object>> blends(){
return injectObj("sms.blends",new LinkedHashMap<>());
protected Map<String, Map<String, Object>> blends() {
return injectObj("sms.blends", new LinkedHashMap<>());
}
@Bean
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory> factoryList,
SmsConfig smsConfig,
Map<String, Map<String, Object>> blends){
return new SmsBlendsInitializer(factoryList,smsConfig,blends,context);
Map<String, Map<String, Object>> blends) {
//todo: solon 不支持泛型的 List[Bean] 注入
List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList2 = new ArrayList<>(factoryList.size());
for (BaseProviderFactory factory : factoryList) {
factoryList2.add((BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>) factory);
}
return new SmsBlendsInitializer(factoryList2, smsConfig, blends, context);
}
}