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的標準應用事件或者自定義事件。

相關文章
相關標籤/搜索