[英]Several instances of a common @Configuration with different @PropertySource in Spring
嗨,我有以下配置文件:
@Configuration
@PropertySources({
@PropertySource("classpath:english.properties"),
@PropertySource("classpath:spanish.properties")
})
public class LanguageConfig {
@Value(${hello})
private String hello;
// getter setter
}
我想知道是否有办法自动装配LanguageConfig 的两个实例,每种语言一个。 就像是 :
public Myservice() {
@Autowire
@Qualifier("englishLanguage")
private LanguageConfig englishConfig;
@Autowire
@Qualifier("spanishLanguage")
private LanguageConfig spanishConfig;
}
谢谢你。
不确定你想做的事情是否可以实现,但我为你提供了这个解决方案。
您可以将每种语言放在一个单独的文件中,而不是将它们放在一个文件中,比如languages.properties
,然后使用@PropertySource("classpath:language.properties")
注释添加它。 之后,您可以使用@ConfigurationProperties
注入这些属性。
en.hello=Hello
sp.hello=Hola
LanguageConfig 类应如下所示。
public class LanguageConfig {
private String hello;
public String getHello() {
return hello;
}
public void setHello(String hello) {
this.hello = hello;
}
}
将这些LanguageConfig
对象创建为 bean,并将以en
和sp
开头的属性注入到每个对象中。
@Bean
@ConfigurationProperties("en")
public LanguageConfig engConfig() {
return new LanguageConfig();
}
@Bean
@ConfigurationProperties("sp")
public LanguageConfig spanishConfig() {
return new LanguageConfig();
}
然后您可以轻松使用它们。
@Autowired
@Qualifier("engConfig")
LanguageConfig englishConfig;
@Autowired
@Qualifier("spanishConfig")
LanguageConfig spanishConfig;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.