2015-11-27 47 views
0

我有一颗豆下的“开发”简介:如何在默认配置文件的另一个bean中使用spring profile 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("[email protected]")); 
    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:无法自动装配领域:私人java.util.Map com.fmr.bpo.asyncprocessingframework.invocator.wiring.configuration.pojo.common.RootConfig.internalMailingList

感谢您的帮助。

回答

相关问题