用記錄日誌來描述Spring中AOP

面向切面編程是什麼

就指是把邏輯代碼和處理瑣碎事務的代碼分離開,以便能夠分離複雜度。

讓人在同一時間只用思考代碼邏輯,或者瑣碎事務。

代碼邏輯比如是插入一條數據,那麼瑣碎事務就包括獲取連接和關閉連接,事務開始,事務提交。

切面就是指在大堆繁瑣事務中的邏輯代碼。

作用:一是減少重複,二是專注業務。

概念差不多就行了,引用一個網上的例子

你的程序寫好了

現在發現要針對所有業務操作添加一個日誌,

或者在前面加一道權限控制,怎麼辦呢?

傳統的做法是,改造每個業務方法這樣勢必把代碼弄得一團糟

而且以後再擴展還是更亂aop的思想是引導你從另一個切面來看待和插入這些工作日誌,

不管加在哪,它其實都是屬於日誌系統這個角度的

權限控制也一樣

aop允許你以一種統一的方式在運行時期在想要的地方插入這些邏輯

以下是註解標籤

@Aspect: 將一個java類定義為切面類

@Pointcut:定義一個切入點(規則表達式)

根據需要在切入點不同位置的切入內容

@Before:在切入點開始處切入內容

@After:在切入點結尾處切入內容

@AfterReturning:在切入點return之後切入內容(返回值回調,可以用來對處理返回值做一些加工處理)

@Around:在切入點前後切入內容,並自己控制何時執行切入點自身的內容

@AfterThrowing:用來處理當切入內容部分拋出異常之後的處理邏輯

來個demo

用記錄日誌來描述Spring中AOP


分享到:


相關文章: