1. @Autowired
2. @Resource
(1). 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常;
(2). 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常;
(3). 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常;
(4). 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一
--
@Autowired
当有2个Dao类实现同一个接口的时候 只写 @Autowired 按接口注入的话 会出错 spring不知道找哪个实现类
解决方法在
Dao类加个名称@Repository("aa")
在service
@Autowired
@Qualifier("aa")
private DeptDao<Dept, String> deptDao;
即可找到是这个写了aa实现类来调用它的方法
如果用@Resource @Resource(name="aa")
private DeptDao<Dept, String> deptDao;