从java config

时间:2017-04-04 09:25:15

标签: java spring spring-boot

是否有可能从java config加载aditional spring配置文件?

我知道我可以使用-Dspring.profile.active参数,并在application.properties中向spring.profiles.include添加配置文件。

我需要的是能够从java配置激活配置文件。我已经创建了PropertyPlaceholderConfigurer,我在其中添加了一些自定义属性文件,其中还包含属性spring.profiles.include,所有属性都加载并且工作正常,但是spring并没有激活任何配置文件使用这家酒店填写。

@Bean
public static PropertyPlaceholderConfigurer ppc() throws IOException {
    PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
    ppc.setLocations(new ClassPathResource("properties/" + property + ".properties"));
    ppc.setIgnoreUnresolvablePlaceholders(true);
    return ppc;
}

1 个答案:

答案 0 :(得分:1)

通过以下配置在属性中定义活动弹簧配置文件:i=2

您应该列出导入通过上述配置密钥激活的配置文件的所有文件。

修改

首先,根据official documentation,配置 // Combo cb.addItem("--filler--"); cb.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent e) { cb.removeAllItems(); for (int i = 1; i < corps.length; i += 2) { String tempRes = corps[i]; System.out.println(tempRes); cb.addItem(tempRes); } } }); 更适合无条件添加有效配置文件。

其次,我可以假设spring.profiles.active:不适合您想要实现的目标。官方文档列出了Externalize Configuration的方法。您可以尝试使用spring.profiles.include

PropertyPlaceholderConfigurer

此外,您可以尝试按照here所述列出@PropertySource内的属性@PropertySources({ @PropertySource(value = "classpath:application.properties"), @PropertySource(value = "classpath:other.properties", ignoreResourceNotFound = true) }) public class Application { ... } } 中的其他属性文件。