1. 程式人生 > >7 Spring框架的核心功能之AOP技術

7 Spring框架的核心功能之AOP技術

AOP的概述

    1. 什麼是AOP的技術?         * 在軟體業,AOP為Aspect Oriented Programming的縮寫,意為:面向切面程式設計         * AOP是一種程式設計正規化,隸屬於軟工範疇,指導開發者如何組織程式結構         * AOP最早由AOP聯盟的組織提出的,制定了一套規範.Spring將AOP思想引入到框架中,必須遵守AOP聯盟的規範         * 通過預編譯方式和執行期動態代理實現程式功能的統一維護的一種技術         * AOP是OOP的延續,是軟體開發中的一個熱點,也是Spring框架中的一個重要內容,是函數語言程式設計的一種衍生範型         * 利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可重用性,同時提高了開發的效率          2. AOP:面向切面程式設計.(思想.---解決OOP遇到一些問題)     3. AOP採取橫向抽取機制,取代了傳統縱向繼承體系重複性程式碼(效能監視、事務管理、安全檢查、快取)          4. 為什麼要學習AOP         * 可以在不修改原始碼的前提下,對程式進行增強!!   

Spring框架的AOP的底層實現

    1. Srping框架的AOP技術底層也是採用的代理技術,代理的方式提供了兩種         1. 基於JDK的動態代理             * 必須是面向介面的,只有實現了具體介面的類才能生成代理物件                  2. 基於CGLIB動態代理             * 對於沒有實現了介面的類,也可以產生代理,產生這個類的子類的方式          2. Spring的傳統AOP中根據類是否實現介面,來採用不同的代理方式         1. 如果實現類介面,使用JDK動態代理完成AOP         2. 如果沒有實現介面,採用CGLIB動態代理完成AOP

程式碼實現: