Spring常用的一些擴展功能

1、實現接口BeanPostProcessor的postProcessAfterInitialization和postProcessBeforeInitialization方法。

     監聽一個bean在初始化前或初始化後的處理。

   如下圖應用:


 

   2、實現接口ApplicationListener。spring提供了監聽器監聽不同的事件,根據不同的事件在spring加載不同的階段進行調用這些事件。

如下圖,在spring進行環境準備,還未加載上下文時的一個事件:

ContextClosedEvent:如監聽spring容器關閉之前要做的處理。

ApplicationStartedEvent :spring boot啓動開始時執行的事件

ApplicationEnvironmentPreparedEvent:spring boot 對應Enviroment已經準備完畢,但此時上下文context還沒有創建。

ApplicationPreparedEvent:spring boot上下文context創建完成,但此時spring中的bean是沒有完全加載完成的。

ApplicationFailedEvent:spring boot啓動異常時執行事件

3、實現InitializingBean接口,在實現類被ioc容器初始化完成時,會自動調用覆蓋這個接口的afterPropertiesSet方法。

如下是策略模式中把各個策略加載到工廠中。

4、實現ApplicationContextAware接口。通過實現這個接口,spring會自動注入applicationContext上線文對象進來,我們可以根據這個上下文對象獲取spring中的一些bean。

其中的applicationContext.getBeansOfType是獲取一個接口下的所有實現類的實例。

5、實現HandlerInterceptor接口。屬於spring mvn對web的一些攔截處理:如校驗登錄,校驗請求地址,校驗token,校驗和設置cookie等。大部分都是實現preHandle方法。

6、實現MethodInterceptor接口。在Spring Aop框架中,MethodInterceptor接口被用來攔截指定的方法,對方法進行增強。

如下圖使用:

7、@Acpect : 對一些指定的路徑或格式進行切入,然後對返回的值進行重新設置或者加入一些公共的返回值。

8、@RestControlleAdvice的使用。是@RestControlle的增強版本,一般用於攔截處理返回給web的異常等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章