iT邦幫忙

0

spring aop annotation invoke object cast 問題

  • 分享至 

  • xImage

大家好,最近有個需求是客戶想要轉換資料庫。

不過要用漸進式的慢慢轉,
所以有些 table 短時間內都還要同步去做 update 操作。

目前是打算用 spring aop 跟 annotation 設定 dao method。

假設有兩隻 dao 跟 method 的設定,大概長這樣。

ClassDaoA.updateAAA(String a, String b, String c)
ClassDaoA2.updateAAA(String a, String b, String c)

若 call 到設定 annotation 的 ClassDaoA.updateAAA 的話,
打算再將傳入的 className ClassDaoA 字串最後加上 2,
再放入 Class.forName(className) 轉成我要的 ClassDaoA2 物件。

程式就連動跟著 call ClassDaoA2.updateAAA 進行 update 操作。
這樣設計可以不用動到原本的 dao code,整體變更幅度也比較小。

不過目前卡在,雖然我有辦法知道目前被 call dao 的
class name, method name, parameters name, value 等等資料。

但要 invoke 的時候,仍然要 cast obj 到 ClassDaoA2 才可以呼叫。

雖然程式支數少的時候可以手動設定沒問題,
(實際上要加上 annotation 進行同步的支數也蠻多的 @@)
不過還是想說這邊有沒有辦法利用 class name 去做動態的轉型?

或者有其他建議的方法可以處理我的需求呢?

先在此感謝。

以下附上程式的圖片
圖片

swallowcc iT邦新手 4 級 ‧ 2022-04-05 12:12:35 檢舉
不好意思犯蠢了 = =

這邊不用轉型直接丟 Object 進去就好...
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答