Не уверен, что то, что вы хотите сделать, может быть достигнуто или нет, но я предлагаю вам это решение.
Вместо того, чтобы каждый язык был в отдельных файлах, вы можете поместить их в один файл, скажем 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
объекты в виде бинов и добавьте свойства, начиная с 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;