文档章节

java AOP 之 AspectJ

y
 yan5845hao
发布于 2017/05/12 11:54
字数 391
阅读 10
收藏 0
  • 切点语法(pointcut)
方法执行:execution(MethodSignature)
办法调用:call(MethodSignature)
结构器施行:execution(ConstructorSignature)
构制器挪用:call(ConstructorSignature)
类始初化:staticinitialization(TypeSignature)
属性读操作:get(FieldSignature)
属性写操纵:set(FieldSignature)
破例处置施行:handler(TypeSignature)
工具始初化:initialization(ConstructorSignature)
工具事后始初化:preinitialization(ConstructorSignature)
Advice执行:adviceexecution()
pointcut 方法名称([参数]) : call|execution|staticinitialization(* 匹配到方法([参数类型]));
pointcut test(String name) : call(* com.uwo.test.HelloWord.hello(String));
  • 五种通知(曾强)
before 目标方法执行前执行,前置通知
after 目标方法执行后执行,后置通知
after returning 目标方法返回时执行 ,后置返回通知
after throwing 目标方法抛出异常时执行 异常通知
around 在目标函数执行中执行,可控制目标函数是否执行,环绕通知
  • 前置通知语法
before([参数]) : 切点方法名称([参数]) {
    /// 处理过程
}
before(String name) : test(name) {
    System.out.println("before " + name);
}
  • 后置返回通知语法
after([参数]) returning ([返回值]) : 切点方法名称([参数]) {
    /// 处理过程
}
after(String name) returning (String value) : test(name) {
    System.out.println("after returning paramName = " + name + "; resultValue = " + value);
}
  • 异常通知语法
after([参数]) throwing (异常类) : 切点方法名称([参数]) {
    /// 处理过程
}
after(String name) throwing (java.lang.Exception e) : test(name) {
    System.out.println("after throwing paramName = " + name + "; Exception = " + e.getMessage());
}
  • 后置通知语法
after([参数]) : 切点方法名称([参数]) {
    /// 处理过程
}
after(String name) : test(name) {
    System.out.println("after " + name);
}
  • 环绕通知语法 around 无法与 (before,after)同时存在
返回类型 around([参数]) : 切点方法名称([参数]) {
    /// 处理过程
    return 值;
}
String around(String name) : test(name) {
    System.out.println("[around === start]");
    String value = proceed(name);
    System.out.println("[around === end]");
    return value;
}

© 著作权归作者所有

共有 人打赏支持
y
粉丝 7
博文 120
码字总数 21437
作品 0
扬州
程序员
Spring中的AOP(一)——AspectJ的基本使用

AOP(Aspect Orient Programming),也就是面向切面编程,作为面向对象编程的一种补充,当前已经成为一种比较成熟的编程思想,其实AOP问世的时间并不长,甚至在国内的翻译还不太统一(另有人...

摆渡者
2014/03/13
0
1
2014-03-11 Spring的学习(3)------面向切面编程(AOP)

AOP概念 首先让我们从一些重要的AOP概念和术语开始。这些术语不是Spring特有的。不过AOP术语并不是特别的直观,如果Spring使用自己的术语,将会变得更加令人困惑。 切面(Aspect):一个关注...

查封炉台
2014/03/11
0
0
Spring AOP 实现原理与 CGLIB 应用

AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架...

只想一个人静一静
2014/02/27
0
0
Spring AOP 实现原理与 CGLIB 应用

AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架...

ihaolin
2014/03/31
0
0
Aspectj与Spring AOP比较

1、简介 今天有多个可用的 AOP 库, 它们需要能够回答许多问题: 是否与用户现有的或新的应用程序兼容? 在哪里可以实现 AOP? 与自己的应用程序集成多快? 性能开销是多少? 在本文中, 我们将...

沈渊
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 识别慢性能的宏

Page Profiling 给你了有关页面在载入的时候操作缓慢的邪教,你可以将下面的内容添加到调试(debug)级别: Version 3.1 及其后续版本 设置包名字为 com.atlassian.renderer.v2.components.M...

honeymose
10分钟前
0
0
day93-20180920-英语流利阅读-待学习

时尚之觞:外表光鲜靓丽,其实穷得要命 Lala 2018-09-20 1.今日导读 讲到时尚界,我们脑海里浮现的可能都是模特和设计师光鲜靓丽、从容潇洒的模样。可是,最近在法国出版的一本书却颠覆了我们...

飞鱼说编程
25分钟前
0
0
maven的pom.xml用解决版本问题

maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用<exclusion>来排除一些...

JAVA码猿
49分钟前
1
0
20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
2
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
40
10

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部