2022
04/13
21:42
你的位置:首页 > Java教程 > Spring 源码(1)Spring IOC Bean 创建的整体流程

PE新规:差异化监管为创投打开空间 终结全民PE 2022 『小天使直播app定制软件』 -m.fjo3w.xuejiao.org

发布时间:2022-09-28 21:42:52

原标题:Spring 源码(1)Spring IOC Bean 创建的整体流程

Spring源码解读,Spring IOC 创建Bean的流程

Spring IOC 中涉及的重要接口

  • BeanDefinition
    Bean的描述信息,实现类包括 RootBeanDefinitionGenericBeanDefinition,Bean的描述信息中定义了一系列Bean的信息,比如:beanClassNamescopelazyinitdependsOnprimaryinitMethodNamedestroyMethodNameisSingtonisAbstract等信息。

  • BeanDefinitionReader

    用于解析Bean的资源阅读器,比如针对于文件的配置的Bean,实现类,针对properties文件的配置的Bean,实现类为PropertiesBeanDefinitionReaderSpring在启动时会将文件通过loadBeanDefinitions方法进行解析。

  • BeanFactory
    IOC容器实现的顶层接口,默认的实现为DefaultListableBeanFactorySpring Bean 的整个生命周期都是由DefaultListableBeanFactory去管理的,这个类非常的重要

  • BeanFactoryPostProcessor

    这个接口是BeanFactory的增强处理器,用于在Bean加载为BeanDefinition之后的扩展,比如实现类PlaceHolderConfigurerSupport 就是用来处理占位符解析的,当我在文件中配置jdbc信息的时候,通过是用${xxx.jdbUrl}这种方式配置数据库连接的时候,就是通过这个类来处理和解析的。

  • Aware

    这个接口,他下面有一堆的子接口,比如BeanNameAwareApplicationContextAwareBeanFactoryAwareEnvironmentAware等,可以通过实现这些接口完成ioc容器**定信息的设置,比如EnvironmentAware,可以在Bean创建过程中设置环境信息到对应的Bean对象中,后期通过bean对象获取环境信息数据。

  • BeanPostProcessor

    这个接口是Bean的增强处理器,用于在Bean进行初始化时调用init-method方法的前后进行增强,他有两个方法:postProcessBeforeInitializationpostProcessAfterInitialization,分别用于bean初始化方法init-method之前和之后调用,当然还可以进行很多扩展,比如aop就是通过postProcessAfterInitialization方法中去创建动态代理对象。

Spring Bean 的生命周期

https://img2022.cnblogs.com/blog/2575629/202204/2575629-20220414151128368-2060318576.png" loading="lazy">

  • 首先通过BeanDefinitionReader将
  • 然后将BeanDefinition放入DefaultListableBeanFacotry的beanDefinitionMap和beanDefinitionNames集合中
  • 然后调用BeanFactoryPostProcessor#postProcessorBeanFactory对容器中的BeanDefinition的属性进行增强解析
  • 然后通过反射调用对象的构造函数进行对象的实例化
  • 然后调用populateBean进行属性填充
  • 然后调用初始化方法initializeBean,初始化时又会先调用invokeAwareMethods方法执行一堆的Aware方法
  • 然后BeanPostProcessor#postProcessBeforeInitialization方法执行bean增强器的前置处理
  • 然后调用InitializingBean#afterPropertiesSet方法或者是调用自定义的init-method方法
  • 然后调用BeanPostProcessor#postProcessAfterInitialization方法执行bean增强的后置处理
  • 最后完成Bean的创建,最终放入一级缓存singletonObjects中

整体流程大概就是这个,有了整体流程就可以进行下一步Bean创建的细节解读。








原标题:Spring 源码(1)Spring IOC Bean 创建的整体流程

关键词:Spring,接口,bean

转载请保留本文网址: http://www-shaoqun-com.xuejiao.org/a/1665539.html
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
日本vr电影av番号 日本丝袜av资源下载 日本Av束缚 av天堂网——手机版 av偷拍在线观看视频
菊色宫影音先锋AV在线 有瑜伽的AV片 性av网址大全 海关检查av 亚洲欧美国产综合av
国产av老鸭窝在线 迅雷动漫av网站 色av影视 亚洲876av电影 亚洲宅男宅女Av
日本av磁力种子 av番种子百度云盘分享 青草在线观看免费观av看 日本充气姓姓av网站 莲美恋 超市偷东西av