`
aijuans
  • 浏览: 1560623 次
社区版块
存档分类
最新评论

我的spring学习笔记16-容器扩展点之BeanFactoryPostProcessor

 
阅读更多
前面分别对PropertyPlaceholderConfigurer和PropertyOverrideConfigurer的使用方法进行了介绍。但是有个问题,不知道大家看到没有?我们在配置文件中只是定义了一个bean,
<bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
      <property name="location" value="propertyOverrideHolder.properties"/>
</bean>

连id都没有给出。而且这个bean并没有被别的bean所引用。那么,Spring的bean factory是怎么知道要从这个bean中获取信息的呢?
解开源码发现,上面说的两个类,它们都间接的实现了BeanFactoryPostProcessor接口,这个接口很特别,
当 Spring加载任何实现了这个接口的bean的配置时,都会在bean factory载入所有的bean的配置之后,执行 postProcessBeanFactory方法。在PropertyResourceConfigurer类中实现了postProcessBeanFactory方法,在方法中先后调用了 mergeProperties,convertProperties,processProperties这三个方法,分别得到配置,将得到的配置转换为合适的类型,最后将配置内容告知BeanFactory。
正是通过实现BeanFactoryPostProcessor接口,BeanFactory会在实例化任何bean之前获得配置信息,从而能够正确解析bean描述文件中的变量引用。
分享到:
评论
1 楼 研磨struts2 2012-04-21  
你可以参考一下两篇帖子,jinnianshilongnian的,也很不错
讲BeanPostProcessor的
http://www.iteye.com/topic/1122859
http://www.iteye.com/topic/1122937

相关推荐

    spring-framework-3.2.13.RELEASE 源码

    最后,Spring的容器提供了多种扩展点,如BeanPostProcessor、BeanFactoryPostProcessor等,这使得开发者可以在容器初始化阶段自定义逻辑。在3.2.13.RELEASE中,我们可以探索这些扩展点的实现,以及如何利用它们增强...

    spring-spring-framework-4.3.24.RELEASE.zip

    2. **AOP(Aspect Oriented Programming)**:Spring提供了面向切面编程的支持,使得我们可以编写横切关注点,如日志、事务管理等,而无需污染业务代码。`org.springframework.aop`包是实现AOP的基础,包括代理模式...

    spring学习笔记2

    ### Spring框架核心知识点详解:Bean生命周期与AOP深入解析 #### Bean生命周期管理 Spring框架中的Bean生命周期管理是其核心功能之一,它通过一系列的接口和类来实现对Bean的创建、初始化、销毁等过程的控制。以下...

    spring-framework-4.3.6 API

    1. 容器扩展:Spring 提供了 BeanPostProcessor 和 BeanFactoryPostProcessor 接口,允许用户自定义扩展点,实现更精细的控制。 2. Annotation-based Configuration:除了 XML 配置外,4.3.6 版本更加强调注解驱动的...

    Spring容器 .ppt

    本篇内容将深入探讨Spring容器的基础、Bean的概念、依赖注入、Bean的范围、自定义接口、Bean定义的继承以及容器扩展点等重要知识点。 1. **简介** Spring容器是Spring框架的基石,主要分为两种类型:`BeanFactory`...

    com-spring-ioc-demo:源码主要是学习Spring IOC的原理,以及对Bean的注册及控制,主要运用以下类对Spring进行扩展学习:BeanPostProcessor,BeanFactoryAware,BeanNameAware,ApplicationContextAware,FactoryBean,BeanDefinitionRegistryPostProcessor,BeanFactoryPostProcessor,BeanPostProcessor,ResourceLoaderA

    com-spring-ioc-demo:源码主要是学习Spring IOC的原理,以及对Bean的注册及控制,主要运用以下类对Spring进行扩展学习:BeanPostProcessor,BeanFactoryAware,BeanNameAware,ApplicationContextAware,FactoryBean...

    Spring 容器后处理器

    BeanFactoryPostProcessor接口是Spring框架提供的一个接口,用于扩展Spring容器的功能。该接口只有一个方法`postProcessBeanFactory`,该方法在容器加载完成之后被调用,可以用来改变容器中的配置或做一些初始化工作...

    Spring注解驱动扩展原理BeanFactoryPostProcessor

    Spring框架中的BeanFactoryPostProcessor是一个非常重要的扩展点,它允许开发者在BeanFactory标准初始化之后对其进行定制和修改。下面我们将详细介绍BeanFactoryPostProcessor的扩展原理和使用方法。 首先,...

    Spring容器扩展机制的实现原理

    BeanFactoryPostProcessor接口是Spring提供的一种扩展点,它允许在容器实例化相应对象之前,对注册到容器的BeanDefinition所保存的信息做一些额外的操作,例如修改bean定义的某些属性或者增加其他信息等。...

    spring-reference

    Spring框架的核心是其IoC容器,该容器负责管理应用程序中的对象及其依赖关系。 #### 1.2 使用场景 Spring框架可以应用于多种不同的场景,包括但不限于: - **Web开发**:Spring MVC提供了强大的功能来支持构建基于...

    java学习之spring2.0

    - **Bean的高级功能**:如bean的继承、FactoryBean、BeanPostProcessor和BeanFactoryPostProcessor等,增强了Bean的灵活性和扩展性。 4. **整合其他技术** - **MVC框架**:Spring MVC提供了模型-视图-控制器的...

    spring学习源码笔记

    本笔记将深入探讨Spring的源码学习,重点理解其核心组件和生命周期。 首先,Spring通过反射机制来实例化对象。在Java中,我们可以使用`Class.forName()`方法根据完全限定类名获取类对象,或者通过已有对象的`...

    Spring Reference - Core Technologies.pdf

    1.8 容器扩展点 Spring框架允许开发者扩展容器行为,这包括自定义BeanPostProcessor、BeanFactoryPostProcessor等。 在Spring框架的学习和应用中,开发者需要深刻理解这些核心知识点,只有这样,才能充分利用Spring...

    spring扩展原理1

    本文主要探讨Spring扩展原理,特别是`BeanFactoryPostProcessor`、`BeanDefinitionRegistryPostProcessor`以及`ApplicationListener`这三种核心扩展点。 首先,`BeanFactoryPostProcessor`是Spring IOC容器中的一种...

    Spring5.0中文开发手册

    - **3.8 容器扩展点** - **3.8.1 使用BeanPostProcessor定制bean** - BeanPostProcessor接口允许开发者在bean初始化前后执行自定义操作。 - **3.8.2 使用BeanFactoryPostProcessor定制配置元数据** - 可以修改...

    spring 宝典

    - Spring框架自发布以来迅速成为最受欢迎的Java企业级应用开发框架之一,其核心价值在于提供了轻量级的IoC容器,极大地简化了Java EE应用程序的开发过程。 - **Spring框架的特点** - 实用主义:Spring通过简洁的...

    2023最新Spring全家桶面试题-图灵徐庶

    11. Spring的扩展点:包括BeanFactoryPostProcessor、BeanPostProcessor、InstantiationAwareBeanPostProcessor等。 二、Spring Beans 12. Spring beans:是Spring框架中的核心组件,提供了一个通用的方式来创建和...

Global site tag (gtag.js) - Google Analytics