当前位置: 首页 > news >正文

建设监督网站首页海外cdn

建设监督网站首页,海外cdn,网站建设一龙条,做拼图字的网站文章目录 Spring Bean的生命周期加载Bean对象创建Bean对象构造对象填充属性初始化实例注册销毁 销毁 Spring Bean的生命周期 Spring Bean的生命周期就是指Bean对象从创建到销毁的过程,大体可以分为:实例化、属性赋值、初始化、使用、销毁。 加载Bean对象…

文章目录

  • Spring Bean的生命周期
    • 加载Bean对象
    • 创建Bean对象
      • 构造对象
      • 填充属性
      • 初始化实例
      • 注册销毁
    • 销毁

Spring Bean的生命周期

Spring Bean的生命周期就是指Bean对象从创建到销毁的过程,大体可以分为:实例化、属性赋值、初始化、使用、销毁。

在这里插入图片描述

加载Bean对象

在程序员启动Spring程序后就开始准备创建Bean对象。通过“加载Bean定义”LoadBeanDefinition方法,用“xml,注解扫描”等各种方式,找到程序中定义的Bean,并放入到容器中的一个“Bean定义集合”BeanDefinitionMap中,有了这些BeanDefinitionMap“Bean定义的集合”之后,容器就可以遍历这个集合,通过creatBean方法创建每一个Bean对象。
在这里插入图片描述

创建对象可以分为四个步骤:①构造对象;②填充属性;③初始化实例;④注册销毁

创建Bean对象

构造对象

通过createBeanInstance方法进行对象的构造,先用反射机制从BeanDefinition(“Bean定义”)中的BeanClass拿到这个类的构造方法。在获取这个类的构造方法时,如果这个类中只有一个构造方法,无论该方法有没有参数都获取该构造方法;如果这个类有多个构造方法时就会优先获取加有@Autowired的构造方法,如果有多个构造方法加有@Autowired注解则会报错;如果构造方法都没有使用@Autowired注解,就会优先获取到无参构造;如果多个方法都是有参构造,则会报错。在选择了构造方法之后,就会准备构造方法需要的参数,会在单例池中根据参数class类进行查找,如果根据类没有找到,就会根据参数名继续查找,如果没有找到就会报错。在准备好参数之后就可以通过反射进行Bean的构造了,也就是实例化;如果是无参构造无需准备参数直接构造。

在这里插入图片描述

填充属性

通过populateBean方法为Bean内部所需的属性进行赋值填充,通常就是带有@Autowired的属性。容器会通过三级缓存机制进行填充,也就是依赖注入。

在这里插入图片描述

初始化实例

在这里插入图片描述

在填充完属性后紧接着就要通过initializeBean方法,对这个实例进行初始化。初始化的第一步是初始化容器相关信息,通过invokeAwareMethods方法为实现了Aware接口的Bean设置例如beanName ,beanFactory等容器信息,Aware的接口代表“信息感知”接口,一旦实现了这些接口,就可以在bean实例中感知并获取对应的信息。

接下来通过invokeinitMethods方法执行Bean的初始化方法。这个初始化方法是通过实现InitializingBean接口而实现的afterPropertiesSet方法,在afterPropertiesSet执行之后,还会继续执行Bean中自定义的initMethod方法,在执行初始化方法之前和之后,还需要对applyBeanPostProcessorsBeforeInitialization和applyBeanPostProcessorsAfternitialization分别在初始化之前和之后处理各种Bean的后置处理器,这些后置处理器包括容器自身提供的AOP。

注册销毁

上面步骤完成是Bean实例已经可以使用了,为了刚好的销毁,通过注册销毁registerDisposableBean方法,将实现了销毁接口DisposableBean的bean进行注册,这样销毁时就可以执行destroy方法。

通过以上四小步我们就已经将bean创建好了,最后只需要将这些完整的Bean对象通过addSingleton方法,放入到单例池singletonObjects就可以被获取和使用了。

在这里插入图片描述

销毁

在销毁之前先执行“销毁前置处理器”postProcessBeforeDestruction这里就会执行Bean中@preDestroy注解方法然后通过destroyBeans方法逐一销毁容器的Bean,销毁时会执行destroy犯法,也会通过“客户销毁方法”invokeCustomDestoryMethod“来执行Bean上自定义的destroyMethod方法。

在这里插入图片描述

原视频:https://www.bilibili.com/video/BV1584y1r7n6/?spm_id_from=333.999.0.0&vd_source=244586bf9c5b71d8a3ca8b190a5a0942

http://www.yayakq.cn/news/575490/

相关文章:

  • 网站推广方式大全wordpress图片编辑插件下载
  • 厦门网站设计多少钱做网站设计的公司柳州
  • 网站集约化建设报告广州市新闻最新消息
  • 湛江网站建设哪家好网页设计学习心得
  • 外国网站后台设计网站系统介绍
  • 淘宝客网站主题模版网络管理系统的主要功能
  • 电子商务网站建设技能实训答案安徽工程建设信息网
  • 编程就是做网站吗深圳设计公司深圳市广告设计公司
  • 免费大空间网站ps网页设计培训
  • 网站备案最快要几天网站不关站备案
  • 企业微信网站开发功能型网站有哪些
  • dedecms5.7装饰网站模板h5网站建设 北京
  • 注册一个免费的网站吗中交通力建设股份有限公司网站
  • 关于官方网站建设情况的汇报网页设计理念和设计构思
  • 印尼建设银行网站理财网站建设方案书
  • 网站上怎样做轮播图检察机关门户网站建设
  • html网站简易模板下载app免费下载安装下载
  • 南漳网站制作中企动力官做网站怎么样
  • 网站建设中的技术问题男女做污污的网站
  • 成都美食网站设计论文天津建站平台
  • wap网站开发教程怎么自己制作一个网站
  • 太原网站优化技术制作付款网站
  • 大连市建设学校网站旅游网站网页设计
  • 南宁网站制作计划微信公众号推广赚钱
  • 无锡网站制作企业东莞市企业网站建设平台
  • 微信端怎么建设网站如何做跨境电商怎么做
  • 营销型网站建设评价自做网站图片版权
  • 做淘客网站要备案网站开发的ui设计
  • 聊城建设银行网站杭州外贸网站建设公司申跃
  • 做外贸网站好还是内贸网站好做网站的费用