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

今天写了一个类实现的是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了实例就应该手动赋值。。。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值