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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring AOP概述及底层实现原理

發(fā)布時(shí)間:2025/1/21 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring AOP概述及底层实现原理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Spring AOP概述及底層實(shí)現(xiàn)原理

aop概述

AOP全稱為Aspect Oriented Programming的縮寫,意為:面向切面編程。將程序中公用代碼進(jìn)行抽離,通過動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。
使代碼耦合性降低,提高了開發(fā)的效率。

aop可以完成的功能

日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。

aop與oop區(qū)別

OOP:(面向?qū)ο缶幊?#xff09;針對(duì)業(yè)務(wù)處理過程的實(shí)體及其屬性和行為進(jìn)行抽象封裝,以獲得更加清晰高效的邏輯單元?jiǎng)澐帧ava實(shí)體類就是面向?qū)ο缶幊痰淖顪?zhǔn)確的體現(xiàn)。
AOP:則是針對(duì)業(yè)務(wù)處理過程中的切面進(jìn)行提取,它所面對(duì)的是處理過程中的某個(gè)步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。這兩種設(shè)計(jì)思想在目標(biāo)上有著本質(zhì)的差異。

aop相關(guān)術(shù)語

目標(biāo)對(duì)象target:指的是需要被增強(qiáng)的對(duì)象,由于spring aop是通過代理模式實(shí)現(xiàn),從而這個(gè)對(duì)象永遠(yuǎn)是被代理對(duì)象。

連接點(diǎn):所謂連接點(diǎn)是指那些被攔截到的點(diǎn),在spring中這些點(diǎn)指的是方法,因?yàn)閟pring只支持方法類型的連接點(diǎn)。

切入點(diǎn):表示一組 joint point,這些 joint point 或是通過邏輯關(guān)系組合起來,或是通過通配、正則表達(dá)式等方式集中起來,它定義了相應(yīng)的 Advice 將要發(fā)生的地方
簡單說切入點(diǎn)是指我們要對(duì)哪些連接點(diǎn)進(jìn)行攔截的定義。

通知:所謂通知是指攔截到連接點(diǎn)之后所要做的事情就是通知,通知分為前置通知,后置通知,異常通知,最終通知,環(huán)繞通知

切面aspect:是切入點(diǎn)和通知的結(jié)合

織入weaving:織入是一個(gè)過程,是將切面應(yīng)用到目標(biāo)對(duì)象從而創(chuàng)建出AOP代理對(duì)象的過程,織入可以在編譯期,類裝載期,運(yùn)行期進(jìn)行。(Spring采用動(dòng)態(tài)織入,而aspectj采用靜態(tài)織入)

代理proxy:一個(gè)類被AOP織入增強(qiáng)后,就產(chǎn)生一個(gè)結(jié)果代理類.

spring AOP底層實(shí)現(xiàn)介紹

spring的AOP底層是由 JDK提供的動(dòng)態(tài)代理技術(shù) 和 CGLIB(動(dòng)態(tài)字節(jié)碼增強(qiáng)技術(shù))實(shí)現(xiàn)。

**JDK動(dòng)態(tài)代理:**Jdk動(dòng)態(tài)代理只針對(duì)于接口操作。

CGLIB:可以針對(duì)沒有接口的java類和有接口的java類。

總結(jié)

以上是生活随笔為你收集整理的Spring AOP概述及底层实现原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。