<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      spring的AOP基本原理

      一、什么是AOP

       AOP(Aspect Oriented Programming),意思是面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP基于IoC基礎,是對OOP(Object Oriented Programming,面向對象)的延續。

      二、基本概念

      1、切面(Aspect):對橫切性關注點的模塊化,其實就是共有功能的實現。如日志切面、權限切面等。

      2、連接點(JoinPoint):就是程序在運行過程中能夠插入切面的地點。例如,方法調用、異常拋出或字段修改等,但Spring只支持方法級的連接點。

      3、通知(Advice):在切面的某個特定的連接點(Joinpoint)上執行的動作。通知有各種類型,其中包括"around"、"before”和"after"等通知。許多AOP框架,包括Spring,都是以攔截器做通知模型, 并維護一個以連接點為中心的攔截器鏈。

      4、切入點(Pointcut):用于定義通知(Advice)應該切入到哪些連接點(JoinPoint)上。不同的通知通常需要切入到不同的連接點上,這種精準的匹配是切入點的正則表達式來定義的。

      5、目標對象(Target):就是那些即將切入切面的對象,也就是那些被通知的對象。

      6、代理對象(Proxy):將通知應用到目標對象之后被動態創建的對象??梢院唵蔚乩斫鉃椋韺ο蟮墓δ艿扔谀繕藢ο蟮暮诵?/span>業務邏輯功能加上共有能。代理對象對于使用者而言是透明的,是程序運行過程中的產物。

      7、織入(Weaving):將切面應用到目標對象從而創建一個新的代理對象的過程。這個過程可以發生在編譯期、類裝載期及運行期,當然不同的發生點有不同的前提條件。譬如發生在編譯期的話,就要求有一個支持這種AOP實現的特殊編譯器;發生在類裝載期,就要求有一個支持AOP實現的特殊類裝載器;只有發生在運行期,則可直接通過Java語言的反射機制與動態代理機制來動態實現。

      三、通知(Advice)類型

       為了符合現實的各種需求,通知類型提供了5種,可以對目標方法進行全方位處理;

      1、Before advice:在某連接點(JoinPoint)之前執行的通知,但這個通知不能阻止連接點前的執行。

            ApplicationContext中在<aop:aspect>里面使用<aop:before>元素進行聲明。

      2、After advice:當某連接點退出的時候執行的通知(不論是正常返回還是異常退出)。

            ApplicationContext中在<aop:aspect>里面使用<aop:after>元素進行聲明。

      3、After returnadvice:在某連接點正常完成后執行的通知,不包括拋出異常的情況。

            ApplicationContext中在<aop:aspect>里面使用<aop:after-returning>元素進行聲明。

      4、Around advice:包圍一個連接點的通知,類似Web中Servlet規范中的Filter的doFilter方法??梢栽诜椒ǖ恼{用前后完成自定義的行為,也可以選擇不執行。

            ApplicationContext中在<aop:aspect>里面使用<aop:around>元素進行聲明。

      5、Afterthrowing advice:在方法拋出異常退出時執行的通知。

            ApplicationContext中在<aop:aspect>里面使用<aop:after-throwing>元素進行聲明。

      四、AOP兩種代理的區別

      AOP支持2種代理,Jdk的動態代理和CGLIB實現機制。二者有什么區別呢:

      Jdk基于接口實現:JDK動態代理對實現了接口的類進行代理。

      CGLIB基于繼承:CGLIB代理可以對類代理,主要對指定的類生成一個子類,因為是繼承,所以目標類最好不要使用final聲明。 

      通常情況下,鼓勵使用jdk代理,因為業務一般都會抽象出一個接口,而且不用引入新的東西。如果是遺留的系統,以前沒有實現接口,那么只能使用CGLIB。

      五、AOP配置

      Spring AOP配置有兩種風格:

            XML風格 = 采用聲明形式實現Spring AOP 

            AspectJ風格 = 采用注解形式實現Spring AOP

       

      posted @ 2018-03-28 14:51  球你嘞~  閱讀(373)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩av一区二区三区精品| 色九月亚洲综合网| 中文字幕在线看视频一区二区三区| 在线 欧美 中文 亚洲 精品| 国产亚洲精品精品精品| 精品人妻中文字幕av| 中文www天堂| 免费久久人人香蕉av| 国产熟睡乱子伦视频在线播放 | 日本九州不卡久久精品一区 | 97色伦97色伦国产| 久久人人97超碰精品| 日韩一区二区a片免费观看| 狠狠色狠狠色五月激情| 久久综合久中文字幕青草| 无码va在线观看| 蜜臀av色欲a片无人一区| 免费人成网站视频在线观看 | 亚洲国产精品线观看不卡| 一区二区三区四区亚洲自拍| 亚洲v欧美v日韩v国产v| 四虎精品视频永久免费| 中文字幕一区二区三区精彩视频| www免费视频com| 国产熟睡乱子伦视频在线播放| 亚洲成人一区二区av| 国产色精品久久人妻| 一区二区三区四区五区自拍| 日本一区二区三深夜不卡| 97在线视频人妻无码| 国产精品自拍实拍在线看| 四川丰满少妇无套内谢| 日土县| 激情动态图亚洲区域激情| 日韩精品亚洲专在线电影| 偷拍精品一区二区三区| 最新中文字幕av无码专区不| 狠狠色狠狠色综合日日不卡| 国产区一区二区现看视频| 国产午夜精品理论大片| 国产一区二区不卡在线|