真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

深入理解spring的AOP機(jī)制原理-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為大石橋等服務(wù)建站,大石橋等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為大石橋企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

在軟件開發(fā)中,散布于應(yīng)用中多處的功能被稱為橫切關(guān)注點(diǎn),通常來講,這些橫切關(guān)注點(diǎn)從概念上是與應(yīng)用的業(yè)務(wù)邏輯相分離的。把這些橫切關(guān)注點(diǎn)和業(yè)務(wù)邏輯分離出來正是AOP要解決的問題。AOP能夠幫我們模塊化橫切關(guān)注點(diǎn),換言之,橫切關(guān)注點(diǎn)可以被描述為影響應(yīng)用多出的功能。這些橫切點(diǎn)被模塊化特殊的類,這些類被稱為切面。

術(shù)語定義


通知:切面有必須要完成的工作,在AOP中,切面的工作被稱為通知。通知定義了切面是什么以及何時(shí)使用,除了描述切面要完成的工作,通知還解決了何時(shí)執(zhí)行這個(gè)工作的問題,它應(yīng)該在某個(gè)方法之前?之后?之前和之后都調(diào)用?還是只在方法拋出異常時(shí)調(diào)用?

連接點(diǎn):連接點(diǎn)是應(yīng)用程序執(zhí)行過程中,能夠插入切面的一個(gè)點(diǎn)。

切點(diǎn):是在連接點(diǎn)的基礎(chǔ)上定義切點(diǎn),比方說一個(gè)類由十幾個(gè)方法,每個(gè)方法的調(diào)用前和調(diào)用后都可以插入通知,但是你只想選擇幾個(gè)方法插入通知,因此你定義一個(gè)切點(diǎn)來選擇你想插入的通知的方法。

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

織入:織入是把切面應(yīng)用到目標(biāo)對(duì)象并創(chuàng)建新的代理對(duì)象的過程,切面在指定的連接點(diǎn)被織入到目標(biāo)對(duì)象中。在目標(biāo)對(duì)象的生命周期里有多個(gè)點(diǎn)可以進(jìn)行織入:編譯期、類加載期、運(yùn)行期。其中編譯器織入需要特殊的編譯器,類加載器織入需要特殊的類加載器,spring的AOP 是在運(yùn)行期織入通知的。

Spring的AOP支持


spring提供了AOP的四種支持,分別是:基于代理的經(jīng)典Spring AOP模式;純POJO切面;@AspectJ注解驅(qū)動(dòng)的切面;@注入式AspectJ切面。spring所創(chuàng)建的通知都是用標(biāo)準(zhǔn)的Java類編寫的,而且定義通知所應(yīng)用的切點(diǎn)通常會(huì)使用注解或在Spring配置文件里采用XML來編寫。

spring只支持方法級(jí)別的連接點(diǎn)。


在spring AOP中,要使用AspectJ的切點(diǎn)表達(dá)式語言來定義切點(diǎn),關(guān)于Spring AOP的AspectJ切點(diǎn),最重要的一點(diǎn)就是Spring僅支持AspectJ切點(diǎn)指示器的一個(gè)子集:


1.arg() 限制連接點(diǎn)匹配參數(shù)為指定類型的執(zhí)行方法;
2.@args() 限制連接點(diǎn)匹配參數(shù)由指定注解標(biāo)注的執(zhí)行方法;
3.execution() 用于匹配是連接點(diǎn)的執(zhí)行方法;
4.this() 限制連接點(diǎn)匹配AOP代理的bean引用為指定類型的類
5.target 限制連接點(diǎn)匹配目標(biāo)對(duì)象為指定類型的類
6.@target() 限制連接點(diǎn)匹配特定的執(zhí)行對(duì)象,這些對(duì)象對(duì)應(yīng)的類要具有指定類型的注解
7.within() 限制連接點(diǎn)匹配指定的類型
8.@within() 限制連接點(diǎn)匹配特定注解所標(biāo)注的類型
9.@annotation 限定匹配帶有指定注解的連接點(diǎn)

spring 注解創(chuàng)建切面


目標(biāo)對(duì)象:

package concert;
public interface Performance{
  public void perform();
}

分享標(biāo)題:深入理解spring的AOP機(jī)制原理-創(chuàng)新互聯(lián)
文章源于:http://weahome.cn/article/cdjoch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部