当前位置:首页 > 开发 > 编程语言 > Spring > 正文

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

发表于: 2012-04-21   作者:aijuans   来源:转载   浏览次数:
摘要: 前面分别对PropertyPlaceholderConfigurer和PropertyOverrideConfigurer的使用方法进行了介绍。但是有个问题,不知道大家看到没有?我们在配置文件中只是定义了一个bean, <bean class="org.springframework.beans.factory.config.PropertyOverrideConfigure
前面分别对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描述文件中的变量引用。

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
实例化Spring容器示例 利用Spring容器创建JavaBean对象 如何控制Bean实例化 利用Spring实现bean属性
http://blog.csdn.net/caihaijiang/article/details/35552859 BeanFactoryPostProcessor和BeanPostP
1. IoC容器 负责Bean的实例化、注入、生命周期方法管理,包括以下类型接口,前者更强大更常用 Appli
1.1. 概览 Spring包含许多功能和特性,并被很好地组织在下图所示的七个模块中。本节将依次介绍每个
IOC是inversion of control缩写,中文翻译为控制反转。没有引入IOC的时候,业务层都是在需要的时候主
新建一个JavaBean UserBeanFactoryPostProcessor 实现了BeanFactoryPostProcessor接口 Spring配置文
1.SpringIOC容器和beans介绍 IOC的依赖注入是这样的,对象定义他们的依赖也就是他们需要在一起起作
1.1. 概览 Spring包含许多功能和特性,并被很好地组织在下图所示的七个模块中。本节将依次介绍每个
2.2.1 IoC容器的概念 IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化、定位、配置应用程序
OSGI OSGi技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号