依赖关系的管理
spring一个重要的功能就是IOC(IOC容器提供了很多功能,这里只看相关部分),它要完成这个功能必须知道自己管理的被依赖对象和依赖对象之间的对应关系。
这种依赖关系的信息形式可以是文本文件、xml等描述性强的文件格式、编码方式、如果愿意,甚至可以使用语音。
spring中的依赖管理
- 直接编码方式
- 配置文件方式
- 采用配置文件时,spring的IOC容器有统一的处理方式。根据不同格式,由BeanDefinitionReader的实现类负责读取相应配置文件并映射到BeanDefinition,然后将BeanDefinition注册到BeanDefinitionRegistry。 - 元数据(注解)
- @Autowired、@Qualifier、、、
spring注入方式
- 构造方法
- 开箱即用,但是当参数列表较长时难以维护和使用。构造方法无法被继承,也无法设置默认值。适合较固定的对象使用。
- setter
- 适合依赖对象多,且组成对象灵活多变的场景