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