博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于基于Annotation的Advice
阅读量:7047 次
发布时间:2019-06-28

本文共 923 字,大约阅读时间需要 3 分钟。

  hot3.png

基于Annotation与基于XmlSchema的AOP其实是对代理过程的一个简化。
需要引包:asm-X.jar,asm-commons-X.jar,aspectjweaver.jar。
基于Annotation可以有3中声明方式:
1、将Pointcut单独声明在一个类文件中。
Pointcut的声明形式如下:
@Pointcut("execution(* com.YH.类型名.*(..))")//pointcut的定义
public void point(){}//pointcut的签名
如果pointcut很多时,可以将若干个上面的pointcut单独的放在一个特定的类文件中。当调用的时候,在Advice所在类文件中作如下声明:
@Before("pointcut类完整名.签名()")//BeforeAdvice
@AfterReturing(pointcut="pointcut类完整名.签名()",returning="retVal")
@AfterThrowing(pointcut="pointcut类完整名.签名()",throwing="throwable")
@Around("pointcut类完整名.签名()")
2、在Advice所在类中声明Pointcut。
如果一个Pointcut需要被多个Advice引用,那么可以在Advice类文件中提前声明一个特定的Pointcut如:
@Pointcut("execution(* com.YH.类型名.*(..))")//pointcut的定义
public void point(){}//pointcut的签名
然后再在每个Advice声明中直接引用其签名即可。
3、每个Advice都直接引用Pointcut的描述;如
@Before("execution(* com.YH.类型名.*(..))")//BeforeAdvice
实时证明,第一种与第二种方法,总会报错,可能是JDK版本与AspectJ版本不一致所致。为了保持较高可移植性,尽量用第三种方法。

转载于:https://my.oschina.net/u/856612/blog/85961

你可能感兴趣的文章
微信小程序开发之常见BUG
查看>>
汇编指令-MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)
查看>>
Instagram的Material Design概念设计文章分享
查看>>
Jersey VS Django-Rest
查看>>
安装 openCV 2.4.10
查看>>
去哪网实习总结:用到的easyui组件总结(JavaWeb)
查看>>
spring-oauth-server实践:使用授权方式四:client_credentials 模式下access_token做业务!!!...
查看>>
jquery miniui 学习笔记
查看>>
dubbo AdaptiveExtension
查看>>
Scrapy系列教程(1)------命令行工具
查看>>
Using Autorelease Pool Blocks
查看>>
spring-struts-mybatis整合错误集锦
查看>>
Maven 通过maven对项目进行拆分、聚合(重点)
查看>>
TWaver版3D化学元素周期表
查看>>
Java 中最常见的 5 个错误
查看>>
[AWS vs Azure] 云计算里AWS和Azure的探究(2)
查看>>
查看是否安装.NET Framework、.NET Framework的版本号、CLR版本号
查看>>
数据结构基础温故-5.图(下):最短路径
查看>>
调试Release发布版程序的Crash错误(转)
查看>>
深入浅出话VC++(2)——MFC的本质
查看>>