国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達式|

服務(wù)器之家 - 編程語言 - JAVA教程 - 詳解Spring 基于 Aspect 注解的增強實現(xiàn)

詳解Spring 基于 Aspect 注解的增強實現(xiàn)

2020-09-20 12:37多多2017 JAVA教程

本篇文章主要介紹了詳解Spring 基于 Aspect 注解的增強實現(xiàn),非常具有實用價值,需要的朋友可以參考下

整理文檔,搜刮出一個Spring 基于 Aspect 注解的增強實現(xiàn)的代碼,稍微整理精簡一下做下分享

定義基本實體類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.advice;
 
/**
 * @author Duoduo
 * @version 1.0
 * @date 2017/4/25 23:41
 */
public class Performer {
 
  public void doPerform() {
    System.out.println("Performer do perform ....................... ");
  }
}

定義基于注解的增強類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.advice;
 
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
 
/**
 * @author Duoduo
 * @version 1.0
 * @date 2017/4/25 23:42
 */
 
@Aspect//定義切面
public class Audience {
 
  //定義切點
  @Pointcut("execution(* com.advice.Performer.doPerform(..))")
  public void doPerform(){}
 
  @Before("doPerform()")
  public void takeSeas() {
    System.out.println("The audience is taking their seats.");
  }
 
  @Before("doPerform()")
  public void turnOffPhone() {
    System.out.println("The audience is turn off their cellphone.");
  }
 
  @AfterReturning("doPerform()")
  public void applaund() {
    System.out.println("CLAP CLAP CLAP CLAP ...");
  }
 
  @AfterThrowing("doPerform()")
  public void demandRefund() {
    System.out.println("Boo! we want our money back!");
  }
 
  @Around("doPerform()")
  public void watchPerfomance(ProceedingJoinPoint joinPoint) {
 
    try {
      Long start = System.currentTimeMillis();
 
      joinPoint.proceed();
 
      long end = System.currentTimeMillis();
 
      System.out.println("The performance took "+(end-start)+" milliseconds");
 
    } catch (Throwable throwable) {
      throwable.printStackTrace();
    }
 
 
  }
}

Spring 自動代理配置

?
1
2
3
4
<!-- aop 增強自動代理 -->
<aop:aspectj-autoproxy/>
<bean id="audience" class="com.advice.Audience"/>
<bean id="performer" class="com.advice.Performer"/>

Junit測試

?
1
2
3
4
5
6
7
8
9
@Test
  public void testDoPerform() throws Exception {
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:smart-context.xml");
    //代理為指向Interface的代理
    Performer performer = (Performer) context.getBean("performer");
 
    System.out.println("+++++++++++++++++++++++++++++++++");
    performer.doPerform();
  }

測試結(jié)果

?
1
2
3
4
5
6
7
+++++++++++++++++++++++++++++++++
2017-04-26 20:51:16,980 DEBUG [main] (AbstractBeanFactory.java:251) - Returning cached instance of singleton bean 'audience'
The audience is taking their seats.
The audience is turn off their cellphone.
Performer do perform .......................
The performance took 91 milliseconds
CLAP CLAP CLAP CLAP ...

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/qq_26115733/article/details/70832241

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久国产综合 | 亚洲天堂中文字幕在线观看 | 精品久久久久一区二区国产 | 欧美中文在线 | 亚洲第一成av人网站懂色 | 成人在线一区二区三区 | 99久久视频| 日韩城人网站 | 看黄在线 | 一区二区三区在线免费观看 | 国产精品久久久久久久 | 中文字幕成人 | 久久亚洲一区 | 亚洲视频一区 | 精品一区二区三区中文字幕老牛 | 欧美一区二区在线视频 | 精品美女| 国产一区二区三区在线看 | 中文字幕一区二区三区日韩精品 | 国产精品久久久久久久久久久久久久 | av在线一区二区 | 国产成人欧美一区二区三区的 | 成人在线免费电影 | 午夜成人在线视频 | 国产午夜一区二区三区 | 四影虎影www4hu23cmo | 免费成人高清在线视频 | 国产第一区二区三区 | 亚洲激情视频在线 | 伊人欧美一区 | 视频一区二区三区在线播放 | 亚洲 欧美 日韩 在线 | 欧美3区 | 青青操av | 91精品麻豆日日躁夜夜躁 | 国产精品一区二区三区免费 | 国产综合精品一区二区三区 | 伊人久久艹 | 久久精品视频免费 | 日韩美女毛片 | 国产欧美专区 |