当前位置: 首页 > 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.dtcms.com/a/291380.html

相关文章:

  • Jenkins 不同节点间文件传递:跨 Job 与 同 Job 的实现方法
  • 西门子 WinCC预定义报警控件过滤条件
  • 尚庭公寓的结构
  • claude code提示词设计
  • 【前端】jszip+file-saver:多个视频url下载到zip、页面预加载视频、预览视频、强制刷新视频
  • AV1平滑缓冲区
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十七课——图像腐蚀的FPGA实现
  • Spring Boot05-热部署
  • Android开发中ANR治理方案
  • RSTP协议
  • Windows 编程辅助技能:联机搜索
  • Ubuntu 安装 Odoo 17 详细教程
  • 网络协议与层次对应表
  • Spring 中的 Bean 作用域(Scope)有哪些?各自适用于什么场景?
  • Android Studio 的 Gradle 究竟是什么?
  • Telink BLE 低功耗学习
  • Vue接口平台学习十一——业务流测试
  • AWS Certified Cloud Practitioner 认证考试总结
  • GoLand安装指南
  • docker 容器学习
  • LeetCode 刷题【10. 正则表达式匹配】
  • CCF-GESP 等级考试 2025年6月认证C++六级真题解析
  • OTA升级失败,端口占用bind: Address already in use
  • 酵母杂交技术解析
  • 微服务项目文档
  • ABeam News | 中野洋辅董事长专访:扎根上海二十载,做中日企业的卓越桥梁
  • 【人工智能99问】什么是教师强制?(16/99)
  • Spring Cache 扩展:Redis 批量操作优化方案与 BatchCache 自定义实现
  • 2130、链表最大孪生和
  • rsync报错解决