日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

AOP和Spring AOP介绍

發布時間:2024/7/5 javascript 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AOP和Spring AOP介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AOP和Spring AOP介紹

文章目錄

  • AOP和Spring AOP介紹
    • 一.AOP簡介
    • 二. 傳統開發存在的弊端
    • 三. AOP實現原理
    • 四.Spring AOP
    • 五.AOP相關術語

一.AOP簡介

  • AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程。是OOP的延續,是軟件開發中的一個熱點,也是Spring框架中的一個重要內容,函數式編程的一種衍生范型;
  • AOP 通過預編譯方式和運行期動態代理實現程序功能的統一維護;
  • 利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。

二. 傳統開發存在的弊端

假設你正在開發的項目中需要在保存之前添加一個功能(例如權限校驗),此時需要手動在項目中所有保存功能之前添加權限校驗,我們可以通過抽取一個基類,里面寫了權限校驗功能,讓所有類繼承此類,這是傳統面向對象繼承的方式開發,需要改動大量代碼;

我們的目標: 不破壞原來的類,生成一個代理類,在原來類的基礎上進行增強,可以實現隨時添加,隨時取消添加的功能

解決: AOP通過代理類采用橫向抽取機制取代了傳統縱向繼承

三. AOP實現原理

  • JDK動態代理
    JDK動態代理的實現是在運行時,根據一組接口定義,使用Proxy、InvocationHandler等工具類去生成一個代理類和代理類實例。
  • cglib動態代理
    cglib是一個第三方開源代碼生成類庫(使用時一定要在spring的核心包當中引入cglib),cglib動態添加類的屬性和方法,采用的是繼承方式來產生的代理對象
  • 四.Spring AOP

    • Spring使用這種思想最好的框架
    • Spring的AOP有自己的實現方式,但是這種方式非常繁瑣,因此Spring放棄了自己傳統的方式 ,引入AspectJ作為自身AOP的開發
    • AspectJ 是一個AOP的框架

    五.AOP相關術語

  • Joinpoint:連接點
    (1)可以被攔截到的方法
    (2) 能夠被增強的方法,這些方法就可以稱為是連接點

    其中save() ,delete() ,update() ,find()都是 Joinpoint連接點


  • Pointcut:切入點
    真正被攔截(增強)的方法

    其中的save()方法就是 Pointcut切入點


  • Advice:通知
    增加的內容,通常都是封裝成一個方法, 這個方法我們就稱為通知

    其中的checkPrivilege()方法就是Advice通知

  • Introduction:引介
    (1)類層面的增加
    (2)給原有的類添加一些新的屬性方法
    (3)在開發中通常都是給某個方法進行增加

  • Target:被增加的對象

    其中GoodsDao就是Target被增加的對象

  • Weaving:織入
    將通知應用到目標對象的過程

  • Proxy:代理對象

  • Aspect:切面
    多個通知和多個切入點的集合
  • 總結

    以上是生活随笔為你收集整理的AOP和Spring AOP介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。