因為前期,重點放在業務分析上,這兩塊一直認真思考過,覺得很簡單.
一開始只是找了乙個nhibernate的示例, 就決定把session的open和close和事務(transaction)的commit, 放在httpmodule中處理. 算是session per request的模式.
之後,繼續加入錯誤處理的plugin, 做了乙個httphandler的decorater, 在所有其他httphandler的最外層. (我使用的是自己實現的frontcontroller來處理頁面). 這樣一來, 任何頁面處理中,沒有被截獲的錯誤都回被最後一道防線網住.
可是, 等等, transaction提交如果出錯呢? httpmodule是在整個httphandler的外層, httphandler根本沒有辦法處理httpmodule的錯誤.
重新考慮結構, 其實transaction 的業務含義也不符合, httpmodule的管道概念, 它更加是頁面處理的一部分.
調整之後, 整個httphandler構成為: urlhandler --> errorhandler --> transactionhandler --> mypagehandler.
自己也感覺清楚多了.
Web應用架構 錯誤統一處理, 和事務統一處理
因為前期,重點放在業務分析上,這兩塊一直認真思考過,覺得很簡單.一開始只是找了乙個nhibernate的示例,就決定把session的open和close和事務 transaction 的commit,放在httpmodule中處理.算是session per request的模式.之後,繼續加入錯...
統一處理異常
1.controlleradvice 註解定義全域性異常處理類 controlleradvice public class globalexceptionhandler 2.exceptionhandler 註解宣告異常處理方法,註解的方法的引數列表裡,還可以宣告很多種型別的引數 controlle...
異常統一處理高階
在spring boot cloud 二 規範響應格式以及統一異常處理這篇部落格中已經提到了使用 exceptionhandler來處理各種型別的異常,這種方式也是網際網路上廣泛的方式 今天這篇部落格,將介紹一種spring boot官方文件上的統一處理異常的方式.大家可以在spring boot ...