gpt4 book ai didi

java - Spring中常见@Configuration与不同@PropertySource的几个实例

转载 作者:行者123 更新时间:2023-12-01 17:42:01 25 4
gpt4 key购买 nike

嗨,我有以下配置文件:

@Configuration
@PropertySources({
@PropertySource("classpath:english.properties"),
@PropertySource("classpath:spanish.properties")
})
public class LanguageConfig {

@Value(${hello})
private String hello;

// getter setter
}

我想知道是否有一种方法可以Autowire两个LanguageConfig实例,每种语言一个。像这样的东西:

public Myservice() {

@Autowire
@Qualifier("englishLanguage")
private LanguageConfig englishConfig;


@Autowire
@Qualifier("spanishLanguage")
private LanguageConfig spanishConfig;


}

谢谢。

最佳答案

不确定您想要做的事情能否实现,但我为您提供这个解决方案。

您可以将每种语言放在一个文件中,例如 languages.properties,而不是将每种语言放在单独的文件中,然后使用 @PropertySource("classpath:language.properties"添加它。属性”) 注释。之后,您可以使用 @ConfigurationProperties 注入(inject)这些属性。

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 对象创建为 beans,并向每个对象注入(inject)以 ensp 开头的属性。

    @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;

关于java - Spring中常见@Configuration与不同@PropertySource的几个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59905548/

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