使用@Transactional註解的方法所在的類獲取不到註解的解決方案

   前段時間遇到一個問題,一個service叫做A吧,有多個實現類分別是B,C,D,需要根據前端傳的不同參數去匹配不同的實現類,我就自定義了一個註解@OrderDeal放在B,C,D上面,然後匹配前端傳的值和註解裏的value來匹配對應的實現類,這種做法經測試完全是行的通的;但是,由於業務需要我需要對實現類B進行事務操作,所以就用了spring的@Transactional註解放在方法上,但是這時候問題出現了,我匹配註解的邏輯出了問題,經查是因爲拿不到B類上面的自定義註解@OrderDeal了,這才恍然大悟,因爲spring的聲明式事務是通過代理實現的,而B被代理後,其上的註解默認是不保留的,經百度得到的解決方案是在自定義註解@OrderDeal上添加@Inherited註解即可,由於時間倉促,就不配源碼了,記錄下以備不時之需!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章