diff --git a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java index d39793e4..194ceedd 100644 --- a/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java +++ b/sms4j-solon-plugin/src/main/java/org/dromara/sms4j/solon/config/SupplierConfig.java @@ -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> blends(){ - return injectObj("sms.blends",new LinkedHashMap<>()); + protected Map> blends() { + return injectObj("sms.blends", new LinkedHashMap<>()); } @Bean - protected SmsBlendsInitializer smsBlendsInitializer(List> factoryList, + protected SmsBlendsInitializer smsBlendsInitializer(List factoryList, SmsConfig smsConfig, - Map> blends){ - return new SmsBlendsInitializer(factoryList,smsConfig,blends,context); + Map> blends) { + + //todo: solon 不支持泛型的 List[Bean] 注入 + List> factoryList2 = new ArrayList<>(factoryList.size()); + for (BaseProviderFactory factory : factoryList) { + factoryList2.add((BaseProviderFactory) factory); + } + + + return new SmsBlendsInitializer(factoryList2, smsConfig, blends, context); } }