如何为maven依赖提供接口实现

时间:2018-05-01 10:55:43

标签: java spring maven

我想为mavens pom.xml中定义的依赖项提供自定义接口实现。 案例1 显示没有实施的情况。正如您所看到的,Spring应用程序的pom.xml定义了foo.jar依赖项。 foo.jar使用Configuration接口的DefaultConfiguration。

enter image description here

在Spring应用程序的案例2 中,指定了一个SpecialConfiguration。 将此SpecialConfiguration提供给foo.jar而不是DefaultConfiguration的正确方法是什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

只有当客户端没有提供实现时,您才可以将默认实现设置为Spring bean。
如果你使用Spring Boot,你会有非常简单的方法  例如,您可以使用@ConditionalOnMissingBean

默认实现将使用@ConditionalOnMissingBean声明:

@Configuration
public class MyBeanConfig{

    @Bean
    @ConditionalOnMissingBean
    public Configuration configuration() {
       return new DefaultConfiguration();
   }

}

客户端bean将被声明为任何bean:

@Component
public class SpecialConfiguration implements Configuration {
...
}

通过这种方式,只有在没有定义其他DefaultConfiguration bean(并由Spring发现)的情况下才会实例化Configuration

相关问题