国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > JSP > 正文

Spring AOP 基于注解詳解及實例代碼

2024-09-05 00:22:59
字體:
來源:轉載
供稿:網友

Spring AOP  基于注解詳解及實例代碼

1.啟用spring對@AspectJ注解的支持:

<beans xmlns:aop="http://www.springframework.org/schema/aop"...>  <!--啟動支持-->  <aop:aspectj-autoproxy /></beans>

也可以配置AnnotationAwareAspectJAutoProxyCreator Bean來啟動Spring對@AspectJ注解的支持

<beans...>  <bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" /></beans>

2.為了在應用中啟動@AspectJ的支持,還需亞奧增加兩個AspectJ庫:aspectjweaver.jar和aspectjrt.jar。除此之外,Spring AOP還需要依賴一個aopllliance.jar包

3.定義切面Bean

@Aspectpublic class LogAspect {  //...}

4.定義增強處理器,如Before

@Aspectpublic class LogAspect {  @Before("execution(* *.*.*(..))")  public void authority() {    System.out.println("執行目標方法前模擬權限檢查") ;  }}

@AfterReturning注解將在目標方法正常完成后被織入,該注解指定如下兩個屬性:
1>pointcut/value:用于指定該切入點對應的切入表達式
2>returning:指定一個形參名,用于訪問目標方法的返回值。同時如果在Advice方法中指定該形參類型,將會限制目標方法的返回值必須為該類型

@AfterThrowing注解用于處理程序中未處理的異常。該注解指定如下連個屬性:
1>pointcut/value:用于指定該切入點對應的切入表達式
2>throwing:該屬性值也指定一個形參名,用于表示目標方法拋出的未處理的異常。同時如果在Advice方法中指定該形參類型,將會限制目標方法必須拋出指定類型的異常

@Around注解近似于Before和AfterReturning增強處理的總和,它可以決定目標方法在什么時候執行,因為該注解修飾的Advice方法第一個形參為ProceedingJoinPoint類型,ProceedingJoinPoint參數有一個proceed()方法,調用該方法可以執行目標方法。如果在Advice方法中沒有顯示調用該方法, 那么目標方法將不會被執行:

@Aspectpublic class LogAspect {  @Around("execution(* *.*.*(..))")  public Object aroundAdvice(ProceedingJoinPoint jp) {    System.out.println("執行Around增強處理") ;    //獲取目標方法的原始參數    Object[] args = jp.getArgs() ;    //執行目標方法獲取返回值    Object result = jp.proceed(args) ;    System.out.priontln("Around增強處理執行完畢") ;  }}

5.如果需要獲取目標方法的相關信息,可以在定義增強處理方法時將第一個參數定義為JoinPoint類型,當該增強處理方法被調用時,該JoinPoint參數就代表了織入增強處理的連接點。JoinPoint類似與Around增強處理的ProceedingJoinPoint,只不過后者特定于Around增強處理使用。JoinPoint里包含了如下幾個常用的方法:

  1>Object[] getArgs():返回執行目標方法時的參數  2>Signature getSignature():返回被增強的方法的相關信息  3>Object getTarget():返回被織入增處理的目標對象  4>Object getThis():返回AOP框架為目標對象生成的代理對象

示例Before增強處理獲取目標方法的相關信息

@Aspectpublic class LogAspect {  @Before("execution(* *.*.*(..))")  public void beforeAdvice(JoinPoint jp) {    //獲取目標方法的參數    Object[] args = jp.getArgs() ;    System.out.println("目標方法的參數列表為:" + Array.toString(args)) ;    //獲取目標方法的方法名    String methodName = jp.getSignature().getName() ;    System.out.println("目標方法的方法名為:" + methodNamme) ;    //獲取被織入增強處理的目標對象LogAspect    System.out.println("被織入增強處理的目標對象為:" + jp.getTarget()) ;  }}

6.如果兩個不同的Aspect里的兩個Advice需要在同一個JoinPoint連接點被植入時,Spring AOP將會以隨機的順序來織入這兩個增強處理。如果需要指定他們的優先級,有兩種方法:

  1>Aspect類實現org.springframework.core.Ordered接口,并且實現其抽象方法:int getOrder();該方法的返回值越小,優先級就越高  2>直接使用@Order注解來修飾Aspect類,該注解需要指定一個int型的value屬性值

7.定義切入點Pointcut:包含兩個部分:一個切入點表達式和一個包含名字和任意參數的方法簽名:

@Pointcut("execution(* *.*.*(..))")public void simplepointcut() {  //...}//定義了Pointcut之后,就可以在其他的增強處理中使用其方法名作為pointcut屬性值了:@Before(pointcut="simplepointcut()")//等同于pointcut="execution(* *.*.*(..))"public void beforeAspect() {  //...}//如果使用的pointcut切入點不是同一類,就需要使用類來修飾如:  @Before(pointcut="Simple.simplepointcut()")  ...

8.切入點指示符:也就是之前增強處理中指定的execution一類,用于指定目標方法要滿足的條件。Spring AOP一共支持如下幾種切入點指示符:

1>execution:用于匹配執行方法的joinpoint  2>within:用于限定匹配特定類型的joinpoint 如:    within(com.cheng.joinpoint.*)  3>this:用于限定AOP代理必須是指定類型的實例,匹配該對象的所有連接點 如:    this(com.cheng.aop.aopService)  4>target:用于限定目標獨享必須是指定類型的實例  5>args:用于對連接點的參數類型進行限制,要求參數類型必須是指定類型的實例,多個參數類型使用逗號隔開  6>bean:用于限定只匹配指定Bean的實例內的連接點,需要傳入Bean的id/name

9>最后,我們需要在Spring配置文件中使用元素來指定自動搜索切面類

<beans...>  <!--指定自動搜索Bean組件、自動搜索切面類-->  <context:component-scan base-package="com.cheng">    <context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect" />  </context:component-scan></beans>

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
超碰国产在线| 国产另类图片| 亚洲精品在线播放视频| 国产精品伦一区二区三区级视频频 | 国产精品被窝福利一区| 中文字幕在线免费看| 国产香蕉尹人视频在线| 国产激情视频在线| 欧美高清视频| 黄色在线视频观看网站| 黄色av免费在线| 国产www视频在线观看| eeuss影院在线观看第一页| 久久精品视频免费看| 国产一区二区影视| 在线黄色.com| 国产美女高潮| 国产成人精品实拍在线| 欧美日韩亚洲国内综合网| 国产麻豆视频网站| 精品国产高清a毛片无毒不卡 | 国产精品亚洲第五区在线| √天堂资源中文www| 免费视频中文字幕| 精品国产高清a毛片无毒不卡| 九九久久久2| www555久久| 精品久久亚洲一级α| 丁香婷婷在线观看| 伊人永久在线| 国产精品视频流白浆免费视频| 亚洲欧美精选| 97国产视频| 国产区av在线| 国产三级自拍| 国产在线观看av| 在线观看的网站你懂的| 最新国产在线| 国产日韩欧美精品一区二区三区 | 国产性一级片| 国产字幕在线看| 久久久久久久久免费视频| 四虎成人欧美精品在永久在线 | 黄色片视频在线观看| 精品欧美不卡一区二区在线观看| 国产亚洲精品久久久久久移动网络| 欧美韩日国产| 激情在线视频播放| 黄色av网站在线| 尤物视频免费在线观看| 国产在线观看色| 国产卡二和卡三的视频| 天堂资源最新在线| 国产一级片网站| 国产黄色片大全| 亚洲欧美久久婷婷爱综合一区天堂| 99久久99久久免费精品小说| 亚洲天堂电影在线观看| 在线观看中文字幕一区| 国产精品99爱免费视频| 精品一区二区三区在线观看l| 精品黄色免费中文电影在线播放| 亚洲91av| 99视频免费在线观看| 1区2区3区在线| 国产第一页在线| 就爱干草视频| 精品推荐国产麻豆剧传媒| 亚洲成人在线播放| 最新黄网在线观看| 亚洲国产精品区| 国产香蕉在线| 青青青手机在线视频观看| 热99re久久精品这里都是免费| 丁香婷婷在线观看| 樱花草在线观看www| 国产卡二和卡三的视频| 国产精品69一区二区三区| 日本高清中文字幕在线| 国产欧美日本亚洲精品一4区| 四虎网站在线观看| 国产成人福利| 国产精品蜜臀| 国产在线高潮| 日本成人网址| 亚洲国产日韩成人综合天堂| 国产特级毛片| 九九热在线视频| av文字幕在线观看| 国产对白叫床清晰在线播放| 国产美女高潮| 国产理论片免费观看| 麻豆视频在线观看免费网站| 伊人影院在线观看| 国产日本韩国在线播放| 超碰在线网址| 久久精品最新免费国产成人| 在线看黄色av| 在线久久视频| 先锋影音av中文字幕| 在线国产1区| 亚洲天堂视频在线观看免费| 精品一区二区三区高清免费不卡| 成人欧美日韩| 中中文字幕av在线| 国产三级视频在线播放线观看| 黄色av免费在线| 国产毛片视频| 国产精品视频一区麻豆| 国产一二在线观看| 国产精品你懂的在线观看| 国产一级性片| 99综合精品久久| 日韩精品免费一区二区| www在线视频观看| 超碰在线网址| 国产精品178页| 在线免费观看你懂的| 99高清免费国产自产拍| 亚洲精品自拍区在线观看| 香蕉视频在线看| 开心快乐六月丁香婷婷| 午夜免费视频在线国产| 精品女厕厕露p撒尿| 任你操在线观看| 国产免费麻豆视频| 国产精品视频一区二区三区麻豆| 国产三级自拍| 青青青国产视频| 国产午夜精品久久久久免费视| 国产福利微拍精品一区二区| av一级在线| 国产小视频免费在线网址| 国产porn在线| 国内自拍视频在线观看| 精品视频vs精品视频| 九九热在线视频| 亚洲欧美综合乱码精品成人网| 另类高清dbsm日本tvav| 6699久久国产精品免费| 激情小说 在线视频| 91精选福利| 国产一级片网站| 牛牛热在线视频| 伊人精品影院| 国产成人综合美国十次| 国产精品自拍亚洲| 日本一级理论片在线大全| 国产亚洲依依| 超碰免费在线播放| 在线视频观看国产| 91在线最新| 国产福利在线观看| 国产一起色一起爱| 国产精品亚洲第五区在线| 麻豆精品免费视频入口| 在线国产一区二区三区| 国产精品777一区二区| 五月婷婷在线观看| 国产女王在线**视频| 天天操天天曰| 开心婷婷激情五月| www.夜夜操| 一级二级三级在线观看| 国产黄在线观看免费观看不卡| 国产精品欧美韩国日本久久| 国产一区精品| 国产午夜在线观看| 91桃色在线| www.操操| 黄色av电影在线播放| 久久久久久久久亚洲精品| 九九热在线观看| 中文字幕免费中文| 伊人电影在线观看| 不卡av免费观看| 丁香花在线电影| 国产精品视频二区三区| 最新天堂资源在线| 国产精品黄页网站在线播放免费| 国产高潮又爽又无遮挡又免费| 精品卡一卡卡2卡3网站| 在线视频中文字幕第一页| 亚洲videos| 午夜国产在线| 亚洲一道本在线| 国产中文字幕在线观看| 国产网红在线观看| 亚洲综合天堂网| 国产在线观看18| 永久免费av片在线观看全网站| 欧美日韩一区二区三区在线播放| 国产九九九九| 永久免费在线观看| 国产在线视频福利| 永久免费av网站| 国产精品久久久久久久久鸭| 亚洲精品xxxxx| 中文字幕在线免费| 欧美性受xxxx免费视频|