spring ioc 下继承使用不当造成的问题

时间:2023-02-01 20:38:37

案例:

 

 

这种子类注入了同样的对象时。子类的set方法将父类的重写了,导致父类的userService注入失败。 父类种若有使用注入对象的地方就会抛npe。

解决方法很简单,基类的注入对象userService改为 protected,子类能直接访问;或给基类的注入对象userService增加get方法。不过这样难免会有开发会疏忽,在写子类时不关心父类的具体方法和属性,导致类似的问题再发生。

根本解决方法是,将所有ioc下基类的bean注入的set方法加上final,即可再正常开发时将问题提前暴露出来