IoC容器注入方式
IoC容器的作用:1.管理Java类的创建 2.管理Java类之间的依赖关系
Constructor注入
使用类的构造方法对类的字段进行注入
setter注入
使用set方法对类的字段进行注入
BeanFactory
2种Spring IoC容器类型: BeanFactory和ApplicationContext
BeanFactory是基础IoC容器, ApplicationContext继承自BeanFactory,
ApplicationContext可以看成是BeanFactory的扩展, 提供更多的特性.
具体的定义可以查看对应的BeanFactory和ApplicationContext接口.
1.XML和Annotation元数据通过Spring框架被转为BeanDefinition对象
2.BeanDefinition被注册到BeanDefinitionRegistry类中
ApplicationContext
ApplicationContext是对BeanFactory的扩展,拥有更多的功能和特性.
基于注解的依赖注入
@Autowired
@Autowired注解标注在不同位置时的意义
1.标注在类的字段上, 根据字段的类型进行注入
2.标注在构造方法上, 根据构造方法的参数类型进行注入
3.标注在任意方法上, 根据方法的参数类型进行注入
@Autowired默认按byType进行匹配注入,如果Spring容器中有多个同一类型的对象实例,就需要使用@Qualifier注解按byName的方式进行匹配.
@Resource
Spring出了自带的注解外,还可以使用JSR250标准(Java标准)中的一些注解,如@Resource, @PostConstruct和@PreDestroy来进行标注,其中@Resource也可以完成依赖注入的功能.
@Resource默认按照byName方式注入.
@PostConstruct和@PreDestory用于标注对象生命周期管理相关的方法.