Spring的IOC
–1,概述
Inversion of Control,控制反转,是指把管理对象的权利交给spring框架。
注解方式实现IOC
哪个类想让spring框架new,就在类上使用注解:@Component / @Service / @Controller
DI 依赖注入
–2,概述
依赖注入,前提是先使用注解@Component完成IOC
两个类(对象)间的关系,使用@Autowried完成DI
Spring自动装配过程
1.Spring"容器"
说明: Spring容器是在内存中一大块的内存区域,存储Spring管理对象
数据结构: KEY-VALUE结构
数据类型: Map集合
Map详细说明: Key: 类型首字母小写 Value: 对象
- 依赖注入的原理
2.1按照类型注入
按照属性的类型去Map集中中查找是否有该类型的对象. 如果有则注入.
2.2按照名称注入 根据属性的name 去Map集中中查找对应的KEY
自动装配的规则说明:
1.如果对象在进行实例化.如果对象中的属性被 @Autowired注解修饰,则说明应该先注入属性.
2.先根据属性的类型,查找Map集合中是否有该类型的对象.
3.如果根据类型查找没有找到,则根据属性的名称按照name查找对象.
4.如果上述的方式都没有找到,则报错实例化对象失败.
原则:Spring容器中要求 接口必须单实现. 如果有多实现则通过@Qualifier(“xxxx”)区分即可