Step1:項(xiàng)目 aop_leadin1
先定義好接口與一個(gè)實(shí)現(xiàn)類,該實(shí)現(xiàn)類中除了要實(shí)現(xiàn)接口中的方法外,還要再寫兩個(gè)非業(yè)務(wù)方法。非業(yè)務(wù)方法也稱為交叉業(yè)務(wù)邏輯:
● doTransaction():用于事務(wù)處理
● doLog():用于日志處理
然后,再使接口方法調(diào)用它們。接口方法也稱為主業(yè)務(wù)邏輯。
當(dāng)然,也可以有另一種解決方案:將這些交叉業(yè)務(wù)邏輯代碼放到專門的工具類或處理類中,由主業(yè)務(wù)邏輯調(diào)用。
以上的解決方案,還是存在弊端:交叉業(yè)務(wù)與主業(yè)務(wù)深度耦合在一起。當(dāng)交叉業(yè)務(wù)邏輯較多時(shí),在主業(yè)務(wù)代碼中會出現(xiàn)大量的交叉業(yè)務(wù)邏輯代碼調(diào)用語句,大大影響了主業(yè)務(wù)邏輯的可讀性,降低了代碼的可維護(hù)性,同時(shí)也增加了開發(fā)難度。
所以,可以采用動態(tài)代理方式。在不修改主業(yè)務(wù)邏輯的前提下,擴(kuò)展和增強(qiáng)其功能。