3分钟干货之对spring进行定制化功能扩展

能够选择以下一些扩展点:spring

▌1.BeanFactoryPostProcessor
是beanFactory后置处理器,支持在bean factory标准初始化完成后,对bean factory进行一些额外处理。在讲context初始化流程时介绍过,这时全部的bean的描述信息已经加载完毕,可是尚未进行bean初始化。例如前面提到的PropertyPlaceholderConfigurer,就是在这个扩展点上对bean属性中的占位符进行替换。代理

▌2.BeanDefinitionRegistryPostProcessor对象

它扩展自BeanFactoryPostProcessor,在执行BeanFactoryPostProcessor的功能前,提供了能够添加bean definition的能力,容许在初始化通常bean前,注册额外的bean。例如能够在这里根据bean的scope建立一个新的代理bean。接口

▌3.BeanPostProcessor事件

提供了在bean初始化以前和以后插入自定义逻辑的能力。与BeanFactoryPostProcessor的区别是处理的对象不一样,BeanFactoryPostProcessor是对beanfactory进行处理,BeanPostProcessor是对bean进行处理。it

注:上面这三个扩展点,能够经过实现Ordered和PriorityOrdered接口来指定执行顺序。实现PriorityOrdered接口的processor会先于实现Ordered接口的执行。io

▌4.ApplicationContextAware扩展

能够得到ApplicationContext及其中的bean,当须要在代码中动态获取bean时,能够经过实现这个接口来实现。List

▌5.InitializingBeansso

能够在bean初始化完成,全部属性设置完成后执行特定逻辑,例如对自动装配对属性进行验证等等。

▌6.DisposableBean

用于在bean被销毁前执行特定的逻辑,例如作一些回收工做等。

▌7.ApplicationListener

用来监听spring的标准应用事件或者自定义事件。

相关文章
相关标签/搜索