问题描述
- spring @Autowired service dao装配顺序?
- 代码结构如下:
@Controller
public class MyController{@Autowiredprivate MyService service;
}
@Service
public class MyService{@Autowiredprivate MyFirstDao myFirstDao;public void check(Integer id) { //调用baseDao中基本的查询entity的方法 myFirstDao.find(id);//此处myFirstDao==null 为什么??}
}
@Repository
public class MyFirstDao extends BaseDao{//FirstEntity extends BaseEntity}
@Repository
public class MySecondDao extends BaseDao{//SecondEntity extends BaseEntity}
public class BaseDao{
//实现基本的增删改查public void find(){}public void del(){}public void add(){}
}
按照我的理解,在初始化controller时会自动注入service(即完成service的初始化并获一个实例对象),同时因为service中有用@Autowired标注MyFirstDao ,因此会同时给serivce注入myFirstDao才对,为什么myFirstDao没注入成功呢?获取到的dao为null。
此种场景下,要调用基本的baseDao中的查询方法应该如何解决呢?
注: 其他xml中的配置都没问题。
急求解答。初学者对spring机制不是特别熟悉。
解决方案
看service是不是为null
时间: 2024-09-13 02:37:46