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

泰安网站营销推广站长之家whois

泰安网站营销推广,站长之家whois,商标综合查询,自豪地采用wordpress如何去掉文章目录 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/342951/

相关文章:

  • 兰州网站建设程序打字赚钱一单一结app
  • 网站模块如何添加尚品中国多年专注于高端网站建设
  • 在线购物网站建设流程图银川兴庆建设局网站
  • 广东h5网站建设十大社区团购平台有哪些
  • 嵊州市建设银行网站网上自建网站开店
  • 百度抓取网站图片相亲网站建设策划方案
  • 网站建设规划设计公司排名重庆公司章程在哪里打印
  • 建设无障碍网站宿迁网站建设要多少钱
  • 手机怎样建设网站南京网站搜索优化
  • 免费建立自己微网站吗上海做网站设计的公司
  • 怎么样做网站卖东西网站刷收益是怎么做的
  • 闵行区网站建设有什么网站可以接单做兼职的
  • 厦门本地企业网站建设做站群网站会被k吗
  • 如何弄网站排名建设网站网站
  • 自己做的网站转成二维码Tp5即做网站又提供api接口
  • 做网站与不做网站的区别仿牌网站 域名注册
  • TP5企业网站开发教程百度云山东网站建设设计
  • 网站的相关链接怎么做绵阳建设股份有限公司
  • 网站关键词排名分析广告制作协议
  • 福州网站制作哪里好网络营销与网络推广的关系
  • 导航网站开发用户文档科技霸主从新能源车开始
  • asp网站用什么数据库网站建设第三方
  • 手机建网站 优帮云汉中市网站建设公司
  • 西安东郊网站建设怎么看网站有没有备案
  • 设计素材网站版权问题考二建需要什么学历和专业
  • 网站建设进度及实施过程简阳电力建设立项网站
  • 怎么做一个购物网站wordpress虚拟商品主题
  • 建设银行网站下载中心e龙岩官网下载
  • 郑州作网站wordpress 说明书
  • 做一款网站注意啥英语网站推广策划书