记录一次成功的Debug-----基于SpringBoot框架下无法使用Spring容器中的对象

本文主要针对于在Spring容器中无法使用注入好的对象这个bug进行分析。

bug情况复现:

1)SpringBoot各项配置正常,所有注解均正常使用,SpringApplication中已经正常使用

@ComponentScan
@SpringBootApplication

注解。

2)之后,将Service使用@Service注解,注入到到Spring中。

3)在其他类中,使用@Autowared/@Resource注解,完成对于对像的引用。

4)调用方法。

5)启动项目,发现提示空指针异常

解决办法:

1)检查各项配置是否正常,是否配置了扫描

2)检查对于Bean的使用,是否打了注解

3)对于调用关系,注意是否将依赖的类全部注入到Spring容器中。(很关键)

解释:

由于作者在使用调度线程时,进行了如下的编码:

executor.scheduleAtFixedRate(new taskThreads(),0,50, TimeUnit.MILLISECONDS);

可以看到,由于scheduleAtFixedRate方法需要传入一个任务类,该调度线程会调用该任务,定时执行该线程。

但是,这个类没有交给Spring托管!!!

因此,在该任务类中,使用其他服务时,没有办法使用已经注入的类,这时候就会提示空指针异常!

修改方法,只需要将该类注入到Spring中即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嫌疑人X的解忧杂货店

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值