org.aspectj.lang.JoinPoint-中文简要API 与pointcut expression表达式
来源:互联网 发布:拉勾网职位数据 编辑:程序博客网 时间:2024/05/30 13:42
AspectJ使用org.aspectj.lang.JoinPoint接口表示目标类连接点对象,如果是环绕增强时,使用org.aspectj.lang.ProceedingJoinPoint表示连接点对象,该类是JoinPoint的子接口。任何一个增强方法都可以通过将第一个入参声明为JoinPoint访问到连接点上下文的信息。我们先来了解一下这两个接口的主要方法:
1)JoinPoint
java.lang.Object[] getArgs():获取连接点方法运行时的入参列表;
Signature getSignature() :获取连接点的方法签名对象;
java.lang.Object getTarget() :获取连接点所在的目标对象;
java.lang.Object getThis() :获取代理对象本身;
2)ProceedingJoinPoint
ProceedingJoinPoint继承JoinPoint子接口,它新增了两个用于执行连接点方法的方法:
java.lang.Object proceed() throws java.lang.Throwable:通过反射执行目标对象的连接点处的方法;
java.lang.Object proceed(java.lang.Object[] args) throws java.lang.Throwable:通过反射执行目标对象连接点处的方法,不过使用新的入参替换原来的入参。
注意事项:ProceedingJoinPoint :使用这个类取处理日志,只能处理环绕通知
<!-- 打开AOP的拦截功能,proxy-target-class:是用来控制注入的时实现类还是接口,默认是false表示只能注入接口,true:表示可以用类来注入--><aop:aspectj-autoproxy proxy-target-class="false"/> <aop:config><!-- 声明一个切面 --><aop:aspect id="testExcuteAspect" ref="testExcute"><!-- 声明一个装备,是在什么时候执行日志处理 --><!-- 声明一个切入点,expression: 第一个*表示:通配符,表示返回任何类型, 第二个*表示:通配符,表示这个包下的任意类 第三个*表示:通配符,表示这个类下的方法可以有0个或多个参数 (..):表示这个包下的所有子包 --><aop:pointcut expression="execution(* com.ckpt.logPackage.*.*(..))" id="logTest" /><aop:around method="getLog" pointcut-ref="logTest" /></aop:aspect></aop:config><bean id="testExcute" class="com.ckpt.logPackage.TestExcute" scope="prototype"></bean><bean id="test" class="com.ckpt.Action.Test" scope="prototype"><property name="test2" ref="test2"></property></bean><bean id="test2" class="com.ckpt.logPackage.Test2" scope="prototype"></bean>
0 0
- org.aspectj.lang.JoinPoint-中文简要API 与pointcut expression表达式
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint-中文简要API
- spring aop 中 org.aspectj.lang.JoinPoint-中文简要API
- org.aspectj.lang.JoinPoint解析
- NoClassDefFoundError: org/aspectj/lang/JoinPoint
- 编码gbk的不可映射字符
- Androin学习笔记五十六: android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- startActivityForResult和setResult详解
- 关于.9图片Eclipse上移植到AndroidStudio上的问题解决方案
- 分布式java应用之通信
- org.aspectj.lang.JoinPoint-中文简要API 与pointcut expression表达式
- 如何做ios分形App
- eclipse中透过search打开第二个文件时第一个文件就自己关闭了
- AM335x(TQ335x)学习笔记——u-boot-2014.10移植
- c语言文件输入输出函数小结
- 迁移学习
- kali linux 执行update更新后不能install安装软件
- jquery滚动效果-无间隙向上滚动
- 白话面向智能体编程(Agent Oriented Programmig, AOP)之一