javascript
Spring AOP里面的几个名词的概念:
(1)連接點(diǎn)(Join point):指程序運(yùn)行過程中所執(zhí)行的方法。在Spring AOP中,一個(gè)連接點(diǎn)總代表一個(gè)方法的執(zhí)行。?
(2)切面(Aspect):被抽取出來的公共模塊,可以用來會(huì)橫切多個(gè)對(duì)象。Aspect切面可以看成 Pointcut切點(diǎn) 和 Advice通知 的結(jié)合,一個(gè)切面可以由多個(gè)切點(diǎn)和通知組成。
在Spring AOP中,切面可以在類上使用?@AspectJ?注解來實(shí)現(xiàn)。
(3)切點(diǎn)(Pointcut):切點(diǎn)用于定義?要對(duì)哪些Join point進(jìn)行攔截。
切點(diǎn)分為execution方式和annotation方式。execution方式可以用路徑表達(dá)式指定對(duì)哪些方法攔截,比如指定攔截add*、search*。annotation方式可以指定被哪些注解修飾的代碼進(jìn)行攔截。
(4)通知(Advice):指要在連接點(diǎn)(Join Point)上執(zhí)行的動(dòng)作,即增強(qiáng)的邏輯,比如權(quán)限校驗(yàn)和、日志記錄等。通知有各種類型,包括Around、Before、After、After returning、After throwing。
(5)目標(biāo)對(duì)象(Target):包含連接點(diǎn)的對(duì)象,也稱作被通知(Advice)的對(duì)象。?由于Spring AOP是通過動(dòng)態(tài)代理實(shí)現(xiàn)的,所以這個(gè)對(duì)象永遠(yuǎn)是一個(gè)代理對(duì)象。
(6)織入(Weaving):通過動(dòng)態(tài)代理,在目標(biāo)對(duì)象(Target)的方法(即連接點(diǎn)Join point)中執(zhí)行增強(qiáng)邏輯(Advice)的過程。
(7)引入(Introduction):添加額外的方法或者字段到被通知的類。Spring允許引入新的接口(以及對(duì)應(yīng)的實(shí)現(xiàn))到任何被代理的對(duì)象。例如,你可以使用一個(gè)引入來使bean實(shí)現(xiàn)?IsModified?接口,以便簡(jiǎn)化緩存機(jī)制。
幾個(gè)概念的關(guān)系圖可以參考下圖:?
網(wǎng)上有張非常形象的圖,描述了各個(gè)概念所處的場(chǎng)景和作用,貼在這里供大家理解:
?
總結(jié)
以上是生活随笔為你收集整理的Spring AOP里面的几个名词的概念:的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring AOP中的动态代理主要有两
- 下一篇: Spring中bean的作用域