Вы можете разрешить реализацию по умолчанию для bean-компонента Spring, только если клиент не предоставил реализацию для.
Если вы используете Spring Boot, у вас есть очень простые способы.
Например, вы можете использовать @ConditionalOnMissingBean
.
Реализация по умолчанию будет объявлена с @ConditionalOnMissingBean
:
@Configuration
public class MyBeanConfig{
@Bean
@ConditionalOnMissingBean
public Configuration configuration() {
return new DefaultConfiguration();
}
}
Клиентский компонент будет объявлен как любой компонент:
@Component
public class SpecialConfiguration implements Configuration {
...
}
Таким образом, DefaultConfiguration
создается, только если никакие другие Configuration
бины не были определены (и обнаружены Spring).