美文网首页
spring bean 依赖注入的实现

spring bean 依赖注入的实现

作者: 阮一峰的弟子 | 来源:发表于2018-09-03 00:50 被阅读0次

    spring 是如何实现依赖注入功能的呢?@Autowired 注解是如何生效的呢?这主要是通过 AutowiredAnnotationBeanPostProcessor 实现的,它继承了MergedBeanDefinitionPostProcessorInstantiationAwareBeanPostProcessor两个接口通过以下两个步骤来实现此功能。

    解析注解

    在postProcessMergedBeanDefinition方法中,在字段和方法上根据注解构造出注入元信息InjectionMetadata,并缓存起来。

    注入属性

    在postProcessPropertyValues方法中,取出缓存中的InjectionMetadata并通过它为bean注入属性。首先通过接口ConfigurableListableBeanFactory.resolveDependency获取依赖的属性值,然后通过反射为bean设置属性值。

    @Value

    在使用 DefaultListableBeanFactory 时发现,@Value注解也可以实现依赖注入功能,其效果等同于@Autowired,不太理解为何 AutowiredAnnotationBeanPostProcessor 要支持@Value。

    相关文章

      网友评论

          本文标题:spring bean 依赖注入的实现

          本文链接:https://www.haomeiwen.com/subject/xiyvwftx.html