Spring2.5----容器扩展点

    Spring容器被设计成可扩展的,可以通过plugin各种集成接口实现来进行扩展。

    用BeanPostPorcesser定制bean:

         此接口中定义了几个回调方法,实现该接口可实现自定义的实例化逻辑、依赖解析逻辑等。如果配置了多个BeanPostProcesser,可以通过“order”属性控制BeanPostProcesser的执行次序(仅当BeanPostProcesser实现了Ordered接口时才可以设置此属性)。

    注意:

          BeanPostProcesser可以对bean的多个实例进行操作,也就是说,Spring IOC容器会为你实例化bean,然后使用BeanPostProcesser处理,BeanPostProcesser的作用域是容器级的,只和所在容器有关,如果你在容器中定义了BeanPostProcesser,那么只对此容器中的bean进行后置处理,不会对另外一个容器中的bean进行处理。

    接口中有两个回调方法可以调用,当一个该类的实现类被注册为容器的后置处理器后,对于由此容器创建的每个bean实例在初始化调用前,后置处理器都会从容器获取一个回调,后置处理器可以随意对这个实例执行它所期望的动作,包括完全忽略此回调。通常用来检查标志接口,或者做一些将一个bean包装成一个proxy的事情,一些Spring AOP的底层处理也是通过bean后置处理器来执行代理包装逻辑。

    重要的是,ApplicationContext和BeanFactory对待后置处理器稍有不同,ApplicationContext会自动检测在配置文件中实现了BeanPostProcesser接口的所有bean,并把它们注册为后置处理器。然后在容器创建bean的适当时候调用它,而使用BeanFactory的时候要显式地通过代码注册.

     例如 :

          ConfigurableBeanFactory factory = new XmlBeanFactory(...);

          MyBeanPostProcesser postProcesser = new MyBeanPostProcesser();

          factory.addPostProcesser(postProcesser);

 

 

       

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值