IOC是一个概念,DI是IOC的一种实现方式
Autowired是通过反射注入的
Bean的Autowired是默认按照Type来装配的
若想通过名字进行查找,使用以下注解即可
@Qualifier("")
找到,直接装配;找不到,就会报错
@Resource
- 使用@Resource可以完成跟Autowired相同的功能
- @Resource可以在其他框架中使用,而@Autowired只能在Spring中使用
- @Resource是按照名称进行然后类型装配的,@AutoWired是按照类型进行然后名字装配的
泛型依赖注入
public class BaseService<T>{ @Autowired BaseDao<T> baseDao; public void save(){ baseDao.save(); } } public class TeacherDao extends BaseDao<Teacher>{ public void save(){ } } public class StudentDao extends BaseDao<Student>{ public void save(){ } } public class TeacherService{ @Autowired private TeacherDao teacherDao; public void save(){ teacherDao.save(); } } public class StudentService{ @Autowired private StudentDao studentDao; public void save(){ studentDao.save(); } } public class TeacherService extends BaseService<TeacherService>{ } public class StudentService extends BaseService<StudentService>{ }