You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中未用@Autowired注入的KafkaTemplate为何能在方法中使用?

为什么未使用@Autowired也能正常注入KafkaTemplate?

这是因为Spring 4.3及以上版本支持隐式的构造函数自动装配,具体到你的代码逻辑如下:

  • 你的TransactionsListener类标注了@Service,属于Spring容器管理的Bean。
  • 这个类只有一个带参数的构造函数,Spring会自动识别这个构造函数,并从容器中查找匹配类型的KafkaTemplate<Long, Order>和AccountRepository实例,通过构造函数传递进去完成注入。
  • 构造函数里已经把传入的实例赋值给了成员变量kafkaTemplate和repository,所以后续在listen方法里自然能正常使用这些实例。

简单总结:只要Spring管理的Bean只有一个构造函数,就不需要在构造函数或成员变量上添加@Autowired注解,Spring会自动完成构造函数注入。

内容的提问来源于stack exchange,提问作者techie11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:35:22