spring AOP的異常攔截

系統的異常處理機制是衡量一個系統設計的關鍵因素,良好的異常處理機制能在系統出現異常時準確的找到問題的所在。

spring aop對異常的處理有良好的支持。spring 提供了一個接口 ThrowsAdvice,該接口裏面沒有任何方法,但是實現類裏面必須的實現

afterThrowing(Method method, Object[] args, Object target, RuntimeException  throwable) 或者

afterThrowing(RuntimeException  throwable)

 

如果需要記錄發生異常方法的詳細信息,則實現第一個方法就行,如果只記錄發生的異常,實現第二個方法就ok!

 

那麼異常的處理應該在什麼位置來做處理呢?

一般我們的系統都應該有以下幾個層次:Action--->Service---->DAO

 

DAO負責直接和數據庫打交道,也是發生異常頻率較高的地方,而service只是調用DAO所提供給外面的接口,action裏面大部分的操作也是調用service的服務,再加上少數其他的邏輯,這部分的異常可以單獨處理!下面我們主要關心DAO層的異常處理。

 

1、定義接口

 

 

2、實現

 

 

這裏需要說明的是,這裏的異常我沒有細緻的分類,都是throws Exception。

 

service層的代碼就省略了,因爲只是調用DAO層的方法,下面來寫異常的攔截

 

 

最後當然就是在配置文件裏面配置了

 

 

到此,通過spring AOP攔截異常就完成了,這裏只是攔截DAO層的異常,此方法的好處就是處理異常和功能實現完全分離開,只需要在寫方法的時候要記得拋出相應的異常,當出現異常時ThrowsAdvice就會攔截到該異常,並獲取該異常的詳細信息。

 

 

 

發佈了80 篇原創文章 · 獲贊 0 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章