在线程的RUN方法中使用SERVICE层,报空指针异常

在线程类中用@Autowired注解自动注入一个service接口,在run方法中调用会报空指针异常
这是因为线程的机制,为了线程安全,防止注入

参考:BUG记录---在线程的RUN方法中使用SERVICE层,报空指针异常

写一个实现implements ApplicationContextAware的工具类(工具类上加@Component),编写getBean方法调用。

参考:SpringBoot基础-注解方式配置bean

调用getBean方法的时候要注意,在调用的组件上面需要有@Component(或者@Service等注解)
然后默认(未定义别名,例如@Service("xxx"))的组件名是首字母小写,除非开头2个字母都是大写。

参考:SpringBoot 学习之 No bean named ‘xxx’ available

posted @ 2021-11-13 15:20  张三丰学Java  阅读(828)  评论(0编辑  收藏  举报