Spring aop 開篇(1)2018-08-12

AOP(Aspect Oriented Programming):面向切面編程
核心思想:動態(tài)的添加和刪除切面上的邏輯而不影響原來的執(zhí)行代碼

AOP相關(guān)概念:

1、連接點(Joinpoint)

連接點是指在程序執(zhí)行過程中某個特定的點岛都,比如某方法調(diào)用的時候或者處理異常的時候剂买;

2玫荣、切點(Pointcut)

AOP通過切點定位特定連接點老玛。連接點和切點不是一一對應的關(guān)系蜕青,一個切點可以匹配多個連接點翠桦。

3横蜒、通知(Advice)

通知是織入到目標類連接點上的一段程序代碼,有以下分類:

·前置通知(Before):在目標方法或者說連接點被調(diào)用前執(zhí)行的通知销凑;
·后置通知(After):指在某個連接點完成后執(zhí)行的通知丛晌;
·返回通知(After-returning):指在某個連接點成功執(zhí)行之后執(zhí)行的通知;
·異常通知(After-throwing):指在方法拋出異常后執(zhí)行的通知斗幼;
·環(huán)繞通知(Around):指包圍一個連接點通知澎蛛,在被通知的方法調(diào)用之前和之后執(zhí)行自定義的方法。

4蜕窿、目標對象(Target Object)

增強邏輯的織入目標類谋逻。

5、引介(Introduction):

引介是一種特殊的增強桐经,它為類添加一些屬性和方法毁兆。這樣,即使一個業(yè)務類原本沒有實現(xiàn)某個接口阴挣,通過AOP的引介功能荧恍,我們可以動態(tài)的為該事務添加接口的實現(xiàn)邏輯,讓業(yè)務類成為這個接口的實現(xiàn)類屯吊。

6送巡、織入(Wearving)

織入是將增強添加對目標類具體連接點上的過程,AOP象一臺織布機盒卸,將目標類增強或引介AOP這臺織布機天衣無縫的編織在一起骗爆。

7、切面(Aspect)

切面由切點和通知組成蔽介,它既包括了橫切邏輯的定義摘投,也包括了連接點的定義,SpringAOP就是負責實施切面的框架虹蓄,它將切面所定義的橫切邏輯織入到切面所指定的鏈接點中犀呼。

第一個實例:

定義Target

//定義一個Target 接口
public interface ProxyService {
    /**
     * 測試方法
     */
    void testProxy();
}
//提供實現(xiàn)類
public class ProxyServiceImpl implements ProxyService {
    @Override
    public void testProxy() {
        System.out.println("我是ProxyService中的測試方法......");
    }
}

aop配置類:

@Aspect
public class AopAdviceConfig {
    @Before("execution(* study.chenji.spring.aop..*.*(..))")
    public void beforeAdvice(JoinPoint joinPoint) {
        System.out.println(joinPoint.getThis());
        System.out.println("我是前置通知....");
    }

    @After("execution(* study.chenji.spring.aop..*.*(..))")
    public void afterAdvice(JoinPoint joinPoint) {
        System.out.println(joinPoint.getThis());
        System.out.println("我是后置通知....");
    }
}

測試:

public class TestAop {
    public static void main(String[] args) {
        //手工創(chuàng)建一個實例(Target)
        ProxyService aspectJService = new ProxyServiceImpl();
        //使用AspectJ語法 自動創(chuàng)建代理對象
        AspectJProxyFactory aspectJProxyFactory = new AspectJProxyFactory(aspectJService);
        //添加切面和通知類
        aspectJProxyFactory.addAspect(AopAdviceConfig.class);
        //創(chuàng)建代理對象
        ProxyService proxyService = aspectJProxyFactory.getProxy();
        //進行方法調(diào)用
        proxyService.testProxy();
    }
}

測試結(jié)果:

aop.ProxyServiceImpl@50ad3bc1
我是前置通知....
我是ProxyService中的測試方法......
aop.ProxyServiceImpl@50ad3bc1
我是后置通知....

?從上面的輸出結(jié)果來看,我們的AOP攔截功能是生效了薇组。但是對于這樣的操作是不是很奇怪外臂?上面的AspectJProxyFactory這個類又是什么鬼?怎么只調(diào)用了一下addAspect方法律胀,然后調(diào)用getProxy方法生成代理對象宋光,這樣就能進行AOP攔截了貌矿?

后面的篇章我們持續(xù)的去理解它。罪佳。逛漫。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赘艳,一起剝皮案震驚了整個濱河市酌毡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蕾管,老刑警劉巖阔馋,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娇掏,居然都是意外死亡呕寝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門婴梧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來下梢,“玉大人,你說我怎么就攤上這事塞蹭∧踅” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵番电,是天一觀的道長岗屏。 經(jīng)常有香客問我,道長漱办,這世上最難降的妖魔是什么这刷? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮娩井,結(jié)果婚禮上暇屋,老公的妹妹穿的比我還像新娘。我一直安慰自己洞辣,他們只是感情好咐刨,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扬霜,像睡著了一般定鸟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上著瓶,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天联予,我揣著相機與錄音,去河邊找鬼。 笑死躯泰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的华糖。 我是一名探鬼主播麦向,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼客叉!你這毒婦竟也來了诵竭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤兼搏,失蹤者是張志新(化名)和其女友劉穎卵慰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佛呻,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡裳朋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吓著。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲤嫡。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖绑莺,靈堂內(nèi)的尸體忽然破棺而出暖眼,到底是詐尸還是另有隱情,我是刑警寧澤纺裁,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布诫肠,位于F島的核電站,受9級特大地震影響欺缘,放射性物質(zhì)發(fā)生泄漏栋豫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一谚殊、第九天 我趴在偏房一處隱蔽的房頂上張望笼才。 院中可真熱鬧,春花似錦络凿、人聲如沸骡送。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摔踱。三九已至,卻和暖如春怨愤,著一層夾襖步出監(jiān)牢的瞬間派敷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留篮愉,地道東北人腐芍。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像试躏,于是被迫代替她去往敵國和親猪勇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本章內(nèi)容: 面向切面編程的基本原理 通過POJO創(chuàng)建切面 使用@AspectJ注解 為AspectJ切面注入依賴 ...
    謝隨安閱讀 3,150評論 0 9
  • 前言 只有光頭才能變強 上一篇已經(jīng)講解了Spring IOC知識點一網(wǎng)打盡颠蕴!泣刹,這篇主要是講解Spring的AOP模...
    Java3y閱讀 6,884評論 8 181
  • 一、AOP的基礎(chǔ) 1.1犀被、AOP是什么椅您??寡键? 考慮這樣一個問題:需要對系統(tǒng)中的某些業(yè)務做日志記錄掀泳,比如支付系統(tǒng)中的...
    聶叼叼閱讀 2,116評論 2 17
  • 中國藝術(shù)的這種意境,它給人的美感是一種什么樣的美感西轩? 康德曾經(jīng)說過开伏,有一種美的東西,人們接觸到它的時候往往感到一種...
    AliceTrueLife閱讀 333評論 0 3
  • 如果你留意一下, 你一生的愛恨情仇劫流、喜怒哀懼都和你的家庭有關(guān)巫玻。 當你是孩子的時候,你幾乎所有的快樂和悲傷祠汇,都和你的...
    馬海燕閱讀 361評論 0 0