偶然调试程序,发现Spring注入的对象,本身不为NULL,但是对象的属性为NULL。思考无果,想起来老司机,望不吝赐教。
具体来说
注入顺序如下:
BaseDao中注入了jdbcTemplate,业务dao继承了BaseDao,业务Service注入了业务dao。
调试的时候,在Service中发现dao本身不为空,但是dao.jdbcTemplate为null。甚是不解。
偶然调试程序,发现Spring注入的对象,本身不为NULL,但是对象的属性为NULL。思考无果,想起来老司机,望不吝赐教。
具体来说
注入顺序如下:
BaseDao中注入了jdbcTemplate,业务dao继承了BaseDao,业务Service注入了业务dao。
调试的时候,在Service中发现dao本身不为空,但是dao.jdbcTemplate为null。甚是不解。
没有重名,粘部分代码请看
public class BaseDao {
public JdbcTemplate jdbcTemplate;
set/get();
}
public class NoteQueryDao extends BaseDao{
public void save(){
jdbcTemplate.update(); //第二个断点
}
}
public class NoteQueryService {
public NoteQueryDao noteQueryDao;
set/get();
noteQueryDao.save(); //第一个断点
}
具体来说,在第一个断点处,noteQueryDao不为null,说明注入noteQueryDao成功。但是noteQueryDao的jdbcTemplate属性为空。怪异的是在第二个断点处jdbcTemplate是不为null的。说明注入也是成功的。
不理解的是为什么在第一个断点,service里,看dao的jdbcTemplate是null。
@wendal 麻烦看下上面的回复