NutzCN Logo
问答 关于注入对象,本身不为null,属性为null
发布于 155天前 作者 nidegexing 153 次浏览 复制 上一个帖子 下一个帖子
标签:

偶然调试程序,发现Spring注入的对象,本身不为NULL,但是对象的属性为NULL。思考无果,想起来老司机,望不吝赐教。

具体来说
注入顺序如下:
BaseDao中注入了jdbcTemplate,业务dao继承了BaseDao,业务Service注入了业务dao。
调试的时候,在Service中发现dao本身不为空,但是dao.jdbcTemplate为null。甚是不解。

4 回复

属性重名了吧

没有重名,粘部分代码请看

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 麻烦看下上面的回复

也许dao不是注入进来的呢?在setXxxDao的时候debug一下

添加回复
请先登陆
回到顶部