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

  1. 问题复现

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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