首页 > 编程语言 >从源码角度深入剖析Spring Bean对象创建过程中各后置处理器的作用与实现原理

从源码角度深入剖析Spring Bean对象创建过程中各后置处理器的作用与实现原理

时间:2024-12-01 12:57:39浏览次数:11  
标签:对象 spring bean Bean 源码 处理器 Spring

        spring ioc容器刷新的过程中涵盖了bean对象的创建流程,再bean对象创建的过程中,使用了哪些后置处理器(扩展接口)?这些后置处理器又有什么作用?下图为spring容器刷新过程中,各处理器的位置。

        本文着重对BeanDefinitionRegistryPostProcessor、MergedBeanDefinitionPostProcessor、InstantiationAwareBeanPostProcessor三个后置处理器进行介绍。

(1)BeanDefinitionRegistryPostProcessor其主要实现类为spring内部提供的ConfigurationClassPostProcessor。

        ConfigurationClassPostProcessor的作用就是根据我们的主配置类生成一些列我们定义的BeanDefinition,最终存入BeanDefinition集合中,以便后续生成bean对象时使用。其源码如下:

(2)MergedBeanDefinitionPostProcessor的执行处于bean对象实例化完成后,属性填充前,其主要作用是对一些注解信息进行解析缓存,以便后面bean对象属性填充时直接使用。实现类主要包括:CommonAnnotationBeanPostProcessor:主要用来处理@PostConstruct 、@PreDestroy 、@Resource注解;AutowiredAnnotationBeanPostProcessor :处理 @Autowired 、@Value;PersistenceAnnotationBeanPostProcessor :处理@PersistenceContext 、@PersistenceUnit。

 (3)InstantiationAwareBeanPostProcessor该接口主要围绕bean对象实例化前后被调用,内部包含三个方法:postProcessBeforeInstantiation方法(实例化前被调用)、postProcessAfterInstantiation(实例化后被调用)、postProcessProperties(属性填充时被调用)。本文主要是对postProcessProperties进行讲解。其典型实现类为:AutowiredAnnotationBeanPostProcessor处理被@Autowired注解修饰的方法和属性字段。CommonAnnotationBeanPostProcessor处理被@Resource注解修饰的方法和属性字段。

        注意:此处是将MergedBeanDefinitionPostProcessor解析缓存的信息,填充到bean对象的属性中。

        如果您希望更深入地学习Spring源码,我强烈推荐您访问以下项目链接:https://gitee.com/chengyadong555/spring-framework.git。在这个项目中,对Spring的源码进行了逐行分析,作者不仅提供了丰富的注释,还融入了自己独到的理解和见解。这将是一个极好的学习资源,帮助您更好地掌握Spring框架的内部机制和设计理念。

标签:对象,spring,bean,Bean,源码,处理器,Spring
From: https://blog.csdn.net/qq_26733517/article/details/144167821

相关文章

  • Java设计模式——适配器模式的精妙应用:探秘 JDK 源码中的 Set 类
    在Java编程的世界里,JDK源码犹如一座神秘的宝藏,其中的Set类更是我们日常开发中频繁使用的利器。今天,就让我们像勇敢的探险家一样,深入JDK源码,揭开Set类的神秘面纱,重点剖析适配器模式在其中的巧妙应用,看看它是如何让Set类焕发出独特魅力的!......
  • (附源码)SSM阿迪达斯服装销售管理系统-计算机毕设 33299
    SSM阿迪达斯服装销售管理系统摘要在当今数字化、快节奏的时代,高效的商业运营和精准的市场策略已成为企业成功的关键。特别是对于像阿迪达斯这样的国际知名服装品牌,面对日益激烈的市场竞争和消费者需求的多样化,拥有一套先进的销售管理系统显得尤为重要。为此,我们精心研......
  • 基于SSM的办公自动化系统【附源码+文档】
    ......
  • 基于SSM的在线视频播放器【附源码+文档】
    ......
  • 【开题报告+论文+源码】基于SpringBoot+Vue 的减肥管理系统的设计与实现
    项目背景与意义随着现代生活节奏的加快,人们在工作和生活中面临着越来越多的压力,这导致了不少人出现了不健康的生活习惯,如饮食不规律、缺乏运动等,进而引发肥胖等健康问题。肥胖不仅关系到个人的外观形象,更重要的是它增加了患心血管疾病、糖尿病、高血压等多种慢性病的风险,严......
  • spring的注解开发-事务@transactional的使用
    新建maven项目pom<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http......
  • SpringBoot集成Swagger框架
    SpringBoot集成Swagger框架引言无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。......
  • SSM基于人员管理团建策划公司系统28dim--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、课题名称基于人员管理团建策划公司系统二、研究背景及意义随着企业竞争的日益激烈,团队建设已成为提升员工凝聚力、激发团队活力的重要手段。......
  • 【Spring框架 二】
    Spring框架二Spring数据访问框架Spring数据访问的核心组件使用Spring进行数据访问的方式SpringDataJPA事务SpringDataREST总结SpringSpring框架是一个开源的Java应用程序框架,它提供了一种轻量级的解决方案,用于开发企业级Java应用程序。Spring框架的核心原......
  • springboot毕设毕节教育扶贫网站程序+论文
    系统程序文件列表开题报告内容研究背景在当今社会,教育扶贫已成为国家扶贫战略的重要组成部分,旨在通过提升贫困地区的教育水平,从根本上打破贫困的代际传递。毕节地区,作为中国西南部的贫困地区之一,教育资源的匮乏一直是制约其经济社会发展的关键因素。近年来,随着信息技术的飞......