添加 Qualifier 指定配置Map注入Bean,解决OA与Sms同时存在Bug

This commit is contained in:
dongfeng 2024-10-17 22:39:01 +08:00
parent 3f9c22a04d
commit 95601131cd
2 changed files with 5 additions and 3 deletions

View File

@ -3,6 +3,7 @@ package org.dromara.oa.core.config;
import org.dromara.oa.api.OaSender;
import org.dromara.oa.core.provider.config.OaConfig;
import org.dromara.oa.core.provider.factory.OaBaseProviderFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
@ -31,7 +32,7 @@ public class OaSupplierConfig {
protected OaBlendsInitializer smsOasInitializer(
List<OaBaseProviderFactory<? extends OaSender, ? extends org.dromara.oa.comm.config.OaSupplierConfig>> factoryList,
OaConfig oaConfig,
Map<String, Map<String, Object>> oas) {
@Qualifier("oas") Map<String, Map<String, Object>> oas) {
return new OaBlendsInitializer(factoryList,oaConfig,oas);
}
}

View File

@ -9,6 +9,7 @@ import org.dromara.sms4j.core.datainterface.SmsReadConfig;
import org.dromara.sms4j.provider.config.SmsConfig;
import org.dromara.sms4j.provider.factory.BaseProviderFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ -34,7 +35,7 @@ public class SupplierConfig {
@Bean
@ConditionalOnBean({SmsConfig.class})
@SneakyThrows
protected List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList(Map<String, Map<String, Object>> blends, SmsConfig smsConfig) {
protected List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList(@Qualifier("blends") Map<String, Map<String, Object>> blends, SmsConfig smsConfig) {
//注入自定义实现工厂
List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList = new ArrayList<>();
if (ConfigType.YAML.equals(smsConfig.getConfigType())) {
@ -55,7 +56,7 @@ public class SupplierConfig {
@Bean
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
SmsConfig smsConfig,
Map<String, Map<String, Object>> blends,
@Qualifier("blends") Map<String, Map<String, Object>> blends,
ObjectProvider<SmsReadConfig> extendsSmsConfigs) {
return new SmsBlendsInitializer(factoryList, smsConfig, blends, extendsSmsConfigs);
}