使用 Spring的时候Autowired无法注入成功,定位以及解决过程

本文详细解析了在使用SpringMVC框架时遇到的私有方法成员变量注入为null的问题。通过一系列排查,从配置文件检查、代码审查到反编译分析,最终定位到方法访问权限设置不当导致的注入失败。文章分享了解决方案,即将方法访问修饰符由private改为public,确保动态代理和反射机制正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 问题复现

 

  1. 配置文件查询,发现service已经被管理

 

  1. 把Autowired加在setQueryDeviceByAreaService上发现方法形参是有值的

 

  1. 拿到本地打出来的service包,反编译发现有内部错误

 

  1. 发现下面那个service代码是ok的

 

  1. 用另外一个controller进行测试发现依旧是注入的成员变量为null

  1. 查阅资料发现,第四步的错误其实是反编译工具的错误
  2. 最终发现结果是controller方法定义为了private,但是springmvc使用的是动态代理,动态代理又是使用的反射,因此就可以进到该私有方法中,最终修改方式为把private修成成public就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值