2012-01-06 46 views
0

我目前正在重寫一個遺留的Web應用程序,其中包括CORBA和另一個RPC框架 - 這兩者都很舊,並且沒有Spring支持。使用遺留框架生成Spring DataAccessExceptions

我的希望是,我最終可以編寫一個@Repository類來處理CORBA和其他RPC調用,並將它們的所有異常包裝爲DataAccessException,然後再拋出。

我的問題是

  1. 是有如何去這樣做使我的倉庫不丟太多DataAccessExceptions特別是在其中兩個CORBA和RPC異常可以通過拋出的區域最佳實踐同一個存儲庫方法?
  2. 存儲庫類中是否應該有一個「低於」類來處理某些內容並將其抽象化,或者從技術上講,存儲庫類的用途是什麼?
+0

請問您的倉庫工作,不同的實體類型?還是隻有一個? – Vlad 2012-01-06 10:01:38

+0

不同。但我認爲*他們可能都會經歷相同的NameComponent名稱。我希望爲每個技術堆棧單獨進行回購,甚至可以爲每個CORBA對象類型創建回購,我必須根據需要在後端ORB/RPC代碼中引用和自動裝載。 – icfantv 2012-01-06 17:57:34

回答

0

由於社區沒有迴應,我以爲我會發布我的實施,這絕不是幸運的,甚至可能聞到一點點。

爲了讓代碼調用我的業務層(類標記爲@Service)只需要擔心一個例外(即DataAccessException),業務層或以下代碼拋出的任何/所有異常都被包裝成某種形式DataAccessException。這個奇怪的原因是因爲業務邏輯可能合法地拋出與數據訪問無關的異常,例如驗證。

但是,這個想法是不要讓我的servlets有多個catch塊或者try { ... } catch (Exception ex) { ... }的反模式。

再次,不是一個真正的答案,但我想它的工作...