Как обеспечить реализацию интерфейса для зависимости maven - PullRequest
0 голосов
/ 01 мая 2018

Я хочу предоставить реализацию пользовательского интерфейса для зависимости, определенной в mavens pom.xml. Случай 1 показывает ситуацию без реализации. Как вы можете видеть, pom.xml моего Spring-приложения определяет зависимость foo.jar. foo.jar использует DefaultConfiguration для интерфейса конфигурации.

enter image description here

В Случай 2 Иногда в приложении Spring указывается специальная конфигурация. Как правильно предоставить эту специальную конфигурацию для foo.jar вместо DefaultConfiguration?

enter image description here

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете разрешить реализацию по умолчанию для 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...