Динамическое изменение bean-компонента с помощью applicationProperties в SpringBoot - PullRequest
0 голосов
/ 22 февраля 2020

Можно ли использовать свойства приложения для задания определения компонента в загрузке Spring?

Например:

@Bean
public SomeClassImpl getImpl(){
       return SomeClassImplFactory.getDefaultClassImpl();
 }

будет определением по умолчанию. Но есть ли способ, которым я мог бы указать в файле свойств что-то вроде

getImpl=some.package.NewClassImpl

Переопределение предыдущего?

Спасибо

1 Ответ

0 голосов
/ 22 февраля 2020

Вы можете рассмотреть возможность использования этого подхода:

@Autowired
private Environment environment;

@Bean
public SomeClassImpl getImpl(){
    if(environment.getProperty("getImpl").equals("xxx")) {
        return new NewClassImpl();
    }
    return SomeClassImplFactory.getDefaultClassImpl();
}
...