Я действительно хочу знать, могу ли я сделать что-то вроде этого:
@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();
}
}