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

Spring处理器和Bean的生命周期

  • Spring处理器和Bean的生命周期

    • Spring处理器是对Bean对象的的开发可以对BeanDifinition进行操作,例如动态添加、修改BeanDefinition、动态修改Bean。,也可以在Bean对象创建后对Bean对象进行代理增强。

      • 注意:对于处理器要又一个正确的认知,必须要对Bean生命周期有一个良好的认知。

    • 两种处理器

      • Bean工厂后处理器

        • 实现方式:将BeanFactoryPostProcessor交给Spring容器管理,实现BeanFactoryPostProcessor接口,实现postProcessBeanFactory方法。

          • xml配置

          • 运行结果

        • 案例1:修改BeanDifinition对象达成狸猫换太子的效果

          • Bean工产后处理器类

          • 运行结果

        • 案例2:增加BeanDifinition对象,实现了动态注册。

          • Bean工厂后处理器类

          • 测试和结果

      • Bean后处理器

        • 在bean创建后对生效,可以对Bean进行是对象创建之后,缓存到singletonObjects单例池之前,对Bean初始化过程的操作,包括属性的填充,初始化方法的执行等。二次加工如动态代理。

          • 实现方式通过实现 BeanPostProcessor接口,实现其postProcessBeforeInitialization(在 Bean 初始化之前调用()和postProcessAfterInitialization(在 Bean 初始化之后调用)方法,

            • 实现案例:对Bean对象的代理增强

              • 实现BeanPostProcessor

              • Springxml文件配置

              • 测试结果

    • Bean对象的生命周期

      • 即:Bean对象实例化之后(反射创建出对象),到bean成为一个完整对象,最终存到singletonobjects中的过程。最终分为三个阶段。

        • Bean实例化阶段:Spring框架会取出BeanDefintion的信息进行判断当前Bean范围是否是延迟加载。是否FactoryBean等,在将BeanDefintion存放到BeanDefintionMap后,创建Bean对象之前,可以调用Bean工厂后处理器对其进行修改增加等操作。

        • Bean初始化方法阶段,通过对BeanDefintionMap进行遍历创建Bean对象,此时Bean对象还是个半成品,可以调用Bean后处理器对其进行Aop代理增强,此后还会执行自动义初始化方法inti-method方法等,该阶段是最具技术含量和复杂的阶段

        • 完成阶段:Bean成为了一个完成Spring Bean,被存储到单例池singleonObjects完成了Spring Bean的整个生命周期。

http://www.lryc.cn/news/595491.html

相关文章:

  • 线程池与ThreadPoolExecutor源码解析(上)
  • 暴力破解练习
  • Pandas - JSON格式数据操作实践
  • AV1平滑缓冲区
  • iostat的使用说明
  • MongoDB 查询时区问题
  • GUI简介
  • Kafka 如何优雅实现 Varint 和 ZigZag 编码
  • 【每天一个知识点】非参聚类(Nonparametric Clustering)
  • 期权到期会对大盘有什么影响?
  • 如何用 Z.ai 生成PPT,一句话生成整套演示文档
  • 【操作篇】群晖NAS用root权限直接访问系统分区文件
  • 圆柱电池自动分选机:全流程自动化检测的革新之路
  • 83、形式化方法
  • 淘宝获取商品分类接口操作指南
  • MySQL介绍和MySQL包安装
  • accelerate 在Pycham中执行的设置方法
  • 泛型:C#中的类型抽象艺术
  • Telnet远程登录配置全流程详解
  • 大模型为什么出现幻觉?
  • 二分查找:区间内查询数字的频率
  • 【python数据结构算法篇】python数据结构
  • Linux——C/C++静态库与动态库完全指南:从制作到实战应用
  • 安全测试学习
  • 产品剖析之AI创作与协作的未来革新者Flowith
  • nerf-2020
  • pandas 的series和dataframe的用法,六个题目
  • 牛客网题解 | 单词识别
  • Playwright-MCP浏览器会话复用全解析
  • 腾讯客户端开发面试真题分析