javascript
!Spring Aop中四个重要概念,切点,切面,连接点,通知
一、基本概念
1. 通知: 就是我們編寫的希望Aop時(shí)額外執(zhí)行的那個方法。我們通過Aop希望我們編寫的方法在目標(biāo)方法執(zhí)行前執(zhí)行,或者執(zhí)行后執(zhí)行。
2. 切點(diǎn):切點(diǎn)就是我們配置的滿足我們條件的目標(biāo)方法。比如我們規(guī)定:名字前面是select開頭的才執(zhí)行我們自定義的通知方法。那么這些select開頭的方法就是切點(diǎn)。
3. 連接點(diǎn):連接點(diǎn)可以說是切點(diǎn)的全集。切點(diǎn)是連接點(diǎn)的子集。也可以理解為,連接點(diǎn)是我們沒有定義那個select開頭規(guī)則時(shí),滿足條件的全部方法。
4. 切面:切面是切點(diǎn)和通知的合稱,作為切點(diǎn)切面的統(tǒng)稱。?
二、概念說明
1、為什么要用AOP
1)就是為了方便,國外有一個很有名的大師曾經(jīng)說過,編程的人都是“懶人”,因?yàn)樗炎约鹤龅氖虑槎甲尦绦蛉プ隽恕S昧薃OP能讓你少寫很多代碼,這點(diǎn)就夠充分了吧。
2)就是為了更清晰的結(jié)構(gòu),一方面AOP可以讓你的業(yè)務(wù)邏輯去關(guān)注業(yè)務(wù)本身,而不需要處理與業(yè)務(wù)不相關(guān)的事情。這些其他的事情是重復(fù)調(diào)用的,例如:安全,事物,日志等。另一方面,例如日志,在不同的地方實(shí)現(xiàn)的是同一套邏輯,這樣就可以抽取出來,作為一個通知,然后引入到各個模塊。
2、AOP術(shù)語詳解
初看這么多術(shù)語,一下子都不好接受,慢慢來,很快就會搞懂。
3、代碼演示:
@Aspect //聲明切面,標(biāo)記類
public class Audience {
?
@Pointcut("execution(* *.perform(..))") //定義切點(diǎn),標(biāo)記方法
public void performance() {}
?
@Before("performance()") ?//切點(diǎn)之前執(zhí)行
public .... ? ? ?
?
@AfterReturning("performance()") ?//切點(diǎn)之后執(zhí)行
public ...
?
@AfterThrowing("performance()") ?//切點(diǎn)拋出異常后執(zhí)行
public ...
}
<aop:config>
<aop:aspect ref="audience"> ?//切面代碼Bean,標(biāo)記類
<aop:pointcut id="performance" expression="excution(* *.performance(..))" ?/> ? //定義切點(diǎn),標(biāo)記方法
?
<aop:before ?method="..." ?pointcut-ref="performance" /> ?//前后通知babalalal
<aop:after-returnning ?method="..." ?pointcut-ref="performance" />
<aop:after-throwing ?method="..." ?pointcut-ref="performance" />
?
</aop:aspect>
</aop:config>
?
總結(jié)
以上是生活随笔為你收集整理的!Spring Aop中四个重要概念,切点,切面,连接点,通知的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电动车充电起火 5人死亡:判刑6年!
- 下一篇: 现在申请贷款买房,在什么情况下,等额本金