跪求,是不是java 线程thread无法用kafka

梨花剑君 2023-09-22 15:10:38
public class HandleGPSInfoHexian extends Thread{
    @Autowired
    private KafkaTemplate<String, Object> kafkaTemplate;
    @Override
    public void run() {
        System.out.println("1");
        kafkaTemplate.send("test1", "1");
    }
}
kafkaTemplate显示null。
...全文
115 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
梨花剑君 2023-09-27
  • 打赏
  • 举报
回复

this.kafkaTemplate = (KafkaTemplate) SpringContextUtils.getObject(KafkaTemplate.class);

使用这个方法已解决。

  • 打赏
  • 举报
回复

springBoot中在多线程中为了线程安全,一般都是防止注解注入的,新线程中@Autowired注解无法注入需要的bean(即:保存历史数据的service层),程序一直在报 NullPointerException ,所以需要调用spring中的ApplicationContext来获取封装的bean。
解决可以写一个工具类来获取spring中的bean

30,000

社区成员

发帖
与我相关
我的任务
社区描述
目前就职于阿里巴巴,七年大型互联网后端(Java)研发经验,坐标北京;擅长微服务和中间件。
spring cloud架构中间件 个人社区 北京·朝阳区
社区管理员
  • 当年的春天
  • 环游记
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧