internalDistributionLists() { Map> di-6ren">
gpt4 book ai didi

java - 如何在另一个具有默认配置文件的bean中使用spring配置文件bean?

转载 作者:行者123 更新时间:2023-12-02 04:09:15 25 4
gpt4 key购买 nike

我在“dev”配置文件下有一个 bean:

@Bean(name="internalDL")
public Map<Client, List<String>> internalDistributionLists() {
Map<Client, List<String>> distributionLists = new HashMap<Client, List<String>>();
distributionLists.put(Client.DL_NAME, Arrays.asList("example@blah.com"));
return distributionLists;
}

我需要在另一个 bean 中使用这个 bean:

@Autowired
@Qualifier("internalDL")
private Map<String, List<String>> internalMailingList;

@Bean(name="internalMailingDetails")
public Map<Client, MailingDetails> internalMailingDetails() {
Map<Client, MailingDetails> internalMailingDetails = new HashMap<Client, MailingDetails>();

MailingDetails details = new MailingDetails();

details.setMailingList(internalMailingList.get(Client.DL_NAME));
details.setTemplateSubject("someTemplate");
details.setTemplateBody("someTemplate");
internalMailingDetails.put(Client.DL_NAME, details);

return internalMailingDetails;
}

现在,所有环境的邮件模板都是相同的,因此我没有将其放入标有特定配置文件的配置中。

我尝试通过初始化 ApplicationContextInitializer<ConfigurableApplicationContext> 来初始化配置文件类:

@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
applicationContext.getEnvironment().setActiveProfiles("dev");
}

并将其作为上下文参数:

<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>dev</param-value>
</context-param>

但它们似乎都不起作用。它不断抛出未找到 bean 异常。

org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.util.Map com.fmr.bpo.asyncprocessingframework.invocator.wiring.configuration.pojo.common.RootConfig.internalMailingList

感谢您的帮助。

最佳答案

@Autowired 不适用于集合 bean。使用@Resource而不是@Autowire

@Resource
private Map<String, List<String>> internalMailingList;

并引用beans-property-is-not-setting-from-utillist-object

如果您稍后使用 Spring 4.x,请查看 spring-framework-4-0-and-java-generics

关于java - 如何在另一个具有默认配置文件的bean中使用spring配置文件bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33957784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com