Spring Boot-导入jar但不是所有的bean

时间:2018-12-25 07:31:41

标签: spring spring-boot

您好,我有一个“常见”项目,其中包含我使用的各种队列的所有实现。

由于遗留问题,我在流程中使用了2个队列。

它有卡夫卡和兔子。

我的项目定义了2个bean和子bean:

  • KafkaProducer
  • KafkaConsumer
  • RabbitQueue

全部包含一些子Bean,用于处理故障和填充物。

现在这是我的问题: 我有一个不使用Kafka的微服务。我只想定义Rabbit队列及其bean,但是一旦导入了这个常见的jar依赖关系,它将自动启动Kafka bean。

如何在春季完成此操作而不分离到不同的库。

例如:

@Componenet
public class KafkaProducer {

   @Inject
   private KafkaFailureHandler failureHandler;

}

关于, 伊多

1 个答案:

答案 0 :(得分:0)

向课程添加@Lazy注释

  

如果存在并设置为true,则@Bean或@Component不会被初始化,直到被另一个bean引用或从封闭的BeanFactory中显式检索出来。

关于lazy @Inject,请尝试在Instance<>内添加:

@Inject
Instance<KafkaFailureHandler> failureHandler;

或者通过Provider

@Inject
Provider<KafkaFailureHandler> failureHandler;
  

对于按需注入组件/资源,将它们作为提供程序注入