欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【工作问题】SpringContextUtils.getBean和@Autowired的问题

程序员文章站 2022-07-12 08:38:44
...

今天写了一个类实现的是UncaughtExceptionHandler接口,用于捕获未处理的异常,然后将报错信息存入数据库。

    @Autowired
    ExceptionMsgService exceptionMsgService;//null

    ExceptionMsgService exceptionMsgService = SpringContextUtils.getBean(ExceptionMsgService.class);

该类使用@Autowired注解自动装配service,但一直不能装配,service为空。之后改用SpringContextUtils.getBean(serivice.class)装配成功,那么为什么@Autowired不成功呢?

@Autowired默认按类型装配(byType),为null说明没有找到,那为什么会没有找到呢。。。

后来想了一下,情况可能是这样的。
这个类是静态单列模式的,类加载的时候就会new一个全局唯一的实例出来,而new出来的实例不再被Spring容器管理。也就是说Spring如果new了实例就应该手动赋值。。。

相关标签: Problems