您好,我有一个“常见”项目,其中包含我使用的各种队列的所有实现。
由于遗留问题,我在流程中使用了2个队列。
它有卡夫卡和兔子。
我的项目定义了2个bean和子bean:
全部包含一些子Bean,用于处理故障和填充物。
现在这是我的问题: 我有一个不使用Kafka的微服务。我只想定义Rabbit队列及其bean,但是一旦导入了这个常见的jar依赖关系,它将自动启动Kafka bean。
如何在春季完成此操作而不分离到不同的库。
例如:
@Componenet
public class KafkaProducer {
@Inject
private KafkaFailureHandler failureHandler;
}
关于, 伊多
答案 0 :(得分:0)
向课程添加@Lazy注释
如果存在并设置为true,则@Bean或@Component不会被初始化,直到被另一个bean引用或从封闭的BeanFactory中显式检索出来。
关于lazy @Inject,请尝试在Instance<>
内添加:
@Inject
Instance<KafkaFailureHandler> failureHandler;
或者通过Provider
@Inject
Provider<KafkaFailureHandler> failureHandler;
对于按需注入组件/资源,将它们作为提供程序注入