AOP(Aspect Oriented Programming,面向切面編程)是經過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。利用AOP能夠對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度下降,提升程序的可重用性,同時提升了開發的效率。html
在Spring AOP中業務邏輯僅僅只關注業務自己,將日誌記錄、性能統計、安全控制、事務處理、異常處理等代碼從業務邏輯代碼中劃分出來,從而在改變這些行爲的時候不影響業務邏輯的代碼。編程
相關注解介紹:安全
註解 | 做用 |
---|---|
@Aspect | 把當前類標識爲一個切面 |
@Pointcut | Pointcut是織入Advice的觸發條件。每一個Pointcut的定義包括2部分,一是表達式,二是方法簽名。方法簽名必須是public及void型。能夠將Pointcut中的方法看做是一個被Advice引用的助記符,由於表達式不直觀,所以咱們能夠經過方法簽名的方式爲此表達式命名。所以Pointcut中的方法只須要方法簽名,而不須要在方法體內編寫實際代碼。 |
@Around | 環繞加強,目標方法執行先後分別執行一些代碼 |
@AfterReturning | 返回加強,目標方法正常執行完畢時執行 |
@Before | 前置加強,目標方法執行以前執行 |
@AfterThrowing | 異常拋出加強,目標方法發生異常的時候執行 |
@After | 後置加強,無論是拋出異常或者正常退出都會執行 |
https://www.cnblogs.com/wangdahui/p/13048222.html
對於同一個鏈接點,可能同時存在多個切面,在組織切面時,能夠經過@Order註解指定切面的執行順序。性能