在spring中注入属性的目标是实例而不是类
子类从父类继承的值是与实例无关的 所以子类的属性并没有被赋值
工作背景:
有一个BaseService 有3个Dao成员 DaoA DaoB DaoC
并且 spring 为这3个成员分别注入了值 这三个Dao是直接可以拿过来执行数据库访问的
但是有一个BaseService的子类 xxx
也是拿来执行数据库访问的
表面上 它可以正常的使用 DaoA DaoB
这让我产生了误解,以为这些是从父类拿过来的
但是 需求需要xxx去使用DaoC来访问数据库
结果一直报空指针异常 困惑了很久
最后才发现 xxx之所以能使用DaoA DaoB 是因为spring配置文件中也其DaoA DaoB 注了值
而与父类的DaoA DaoB DaoC是没有关系的
xxx的DaoC没有被注值 拿过来用的时候就一直是默认的null 所以一直报空指针异常
时间: 2024-10-18 10:36:10