官术网_书友最值得收藏!

3.1.1 Spring AOP核心概念

AOP只是一種設計理念,雖然概念不復雜,但實現過程不那么簡單。而Spring作為AOP的一款具體實現框架,也提供了自身的一些設計思想和編程組件。本小節將對Spring AOP中的核心概念展開討論,為下一小節的使用示例提供基礎。

為了理解AOP的具體實現過程,我們首先需要引入一組特定的術語,包括連接點(JoinPoint)、通知(Advice)、切點(PointCut)以及切面(Aspect)。

在AOP中,連接點表示應用執行過程中能夠插入切面的一個點。這種連接點可以是方法調用、異常處理、類初始化或對象實例化。

所謂通知,描述的是切面何時執行以及如何執行對應的業務邏輯。通知有很多種類型,比方說在方法執行之前、之后、前后及執行完成時進行通知,或者在方法執行異常時進行通知。

請注意,通知不一定應用于所有連接點,所以我們引入了切點的概念。切點是連接點的集合,用于定義必須執行的通知。因此切點為組件在應用程序中執行具體的通知提供了細粒度控制的方法。

最后,通知和切點組合在一起就構成了切面。切面用于定義應用程序中的業務邏輯及其執行的位置。

以上概念比較抽象,我們通過圖來使這些概念具象化,如圖3-3所示。

061-1

圖3-3 AOP核心概念示意圖

Spring框架對圖3-3中的概念都進行了實現,但也有自身的一些限制。例如,連接點只支持方法的調用。針對通知,Spring專門提供了一組注解,包括@Before、@After、@Around、@AfterReturning和@AfterThrowing等,分別對應方法執行的各個階段。切點的定義是和業務流程執行緊密相關的,所以在Spring中,可以通過使用各種靈活的表達式來定義切點。最后,Spring專門提供了一個@Aspect注解來定義切面。

主站蜘蛛池模板: 莱西市| 华容县| 九江县| 鄂伦春自治旗| 岱山县| 铜鼓县| 崇文区| 海晏县| 兴化市| 中江县| 县级市| 南靖县| 靖安县| 丰县| 湘阴县| 公安县| 龙陵县| 曲麻莱县| 江达县| 克拉玛依市| 安阳市| 兴宁市| 谷城县| 尉氏县| 大田县| 常德市| 天长市| 汾西县| 吴桥县| 鱼台县| 桂平市| 金溪县| 马公市| 万安县| 龙泉市| 江川县| 上饶县| 福贡县| 镇江市| 大渡口区| 宝山区|