1

在我的一些接口的 Spring Boot 应用程序中,我有几个实现(通常是“主要实现”和“本地测试的实现”),我使用不同的配置文件。我知道告诉 spring 使用特定实现的几个选项。

  1. @Profile/添加@Conditional到用@Component. 优点:容易。缺点:我不喜欢关于配置文件的信息分散在组件中的事实。
  2. 从实现中删除注释并在特定于配置文件( )@Component中实例化组件。优点:需要更多代码。缺点。所有配置文件特定的组件都位于一个位置。@Configuration@Bean SomeService() { return new DefaultSomeService(); }
  3. 排除(通过@Component在实现中@ComponentScan添加显式自定义注释@IgnoreComponentScan以防止歧义)并在特定于配置文件的@Configuration 中实例化组件。接近第二个选项,但使组件更加清晰(我们可以保留@Repository/@Service注释)

还有其他选择吗?哪种方式更合适?

4

0 回答 0