Можно ли создать @Component в Spring только в том случае, если в Context нет другого такого же типа? - PullRequest
0 голосов
/ 18 января 2020

Я действительно хочу знать, могу ли я сделать что-то вроде этого:

@Component
@ConditionalOnMissingBean(MyInterface.class)
public class MyImplementationClass implements MyInterface {
   ...
}

Я не знаю почему, но когда я делаю это таким образом, условие не выполняется, даже если не любая другая реализация внутри контекста. И компонент не создается. Я прочитал в документации Spring, что можно использовать @ConditionalOn .. с @Service, @Component, @Repository и @Controller. Я что-то не так делаю?

Пс .: Я знаю, что если я поступлю следующим образом, это сработает. Но я хочу знать, возможно ли это сделать без классов @Configuration.

@Configuration
public class CustomComponentConfiguration {

    @ConditionalOnMissingBean(CustomComponent.class)
    @Bean
    public CustomComponent customComponent() {
        return new CustomComponent();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...