spring使用aspectj开发的增强类型注解和aspectj在spring中用到的切点函数
来源:互联网 发布:数据精灵官网 编辑:程序博客网 时间:2024/06/04 19:32
@Before
前置增强,相当于BeforeAdvice的功能,Before 注解类拥有两个成员:
value:该成员用于定义切点;
argNames:由于无法通过java反射机制获取方法入参数名,所以如果要在java编译时未启用调试信息或者需要在运行期间解析切点。就必须通过这个成员指定注解所标注增强的方法的参数名(注意两者名字必须完全相同),多个参数名用逗号分隔。
@AfterReturning
后置增强,相当于AfterReturningAdvice,AfterReturning注解类拥有四个成员:
value:该成员用于定义切点;
pointcut:表示切点的信息,如果显示指定pointcut的值,它将覆盖value的设置值,可以将pointcut成员看成是value的同义词;
returning:将目标对象方法的返回值绑定给增强的方法;
argNames:如前所述。
@Around
环绕增强,相当于MethodInterceptor,Around注解类拥有两个成员:
value:该成员用于定义切点;
argNames:如前所述。
@AfterThrowing
抛出增强,相当于ThrowsAdvice, AfterThrowing 注解类拥有4个成员:
value:该成员用于定义切点;
pointcut:表示切点的信息,如果显式指定pointcut值,它将覆盖value的设置值,可以将pointcut成员看成是value的同义词;
throwing:将抛出的异常绑定到增强方法中;
argNames:如前所述。
@ After
Final 增强,不管是抛出异常或者是正常退出,该增强都会得到执行,该增强没有对应的增强接口,可以把它看成ThrowAdvice和AfterReturningAdvice的混合物,一般用于释放资源,相当于try{}finally{}的控制流,After注解类拥有两个成员:
value:该成员用于定义切点;
argNames:如前所述
@DeclareParents
引介增强,相当于IntroductionInterceptor,DeclareParents注解类拥有两个成员:
value:该成员用于定义切点,它表示在哪个目标类上添加引介增强;
defaultImpl :默认的接口实现类。
切点方法:
execution() 方法匹配模式串 ,表示满足某一匹配模式的所有目标类方法连接点点。
@annotation() 方法注解类名,表示标注了特定注解的目标方法连接点。
args() 类名 ,通过判别目标类方法运行时入参对象的类型定义指定连接点。
@args()类型注解类名, 通过判别目标方法运行时入参对象的类是否标注特定注解来指定连接点。
within()类名匹配串 ,表示特定域下所有连接点。
target()类名 ,假如目标类按类型匹配于指定类,则目标类的所有连接点匹配这个切点。
@within()类型注解类名, 假如目标类按类型匹配于某个类a,且类a标注了特定注解,则目标类的所有连接点都匹配这个切点
@target()类型注解类名 ,目标类标注了特定注解,则目标类所有连接点匹配该切点。
this() 类名
- spring使用aspectj开发的增强类型注解和aspectj在spring中用到的切点函数
- spring AOP切面开发 基于aspectJ框架切点的注解开发
- Spring使用AspectJ进行AOP的开发:注解方式
- Spring-AOP @AspectJ切点函数之args()和@args()
- Spring-AOP @AspectJ切点函数之@within()和@target
- Spring-AOP @AspectJ切点函数之target()和this()
- Spring-AOP @AspectJ切点函数导读
- Spring-AOP @AspectJ切点函数之@annotation()
- Spring-AOP @AspectJ切点函数之execution()
- Spring-AOP @AspectJ切点函数之within()
- Spring AOP : AspectJ Pointcut 切点
- Spring的AOP的AspectJ的开发:(注解)
- AspectJ的切点函数execution步骤介绍
- Spring Aop开发基于AspectJ注解方式的案例
- Spring基于注解@AspectJ的AOP
- Spring基于注解@AspectJ的AOP
- Spring集成AspectJ的注解模式
- Spring-AOP:基于AspectJ注解的AOP
- Apache Zeppelin使用入门指南:编程
- 输入一个字符串,打印出该字符串中字符的所有排列
- 如何用Powerdesigner的PDM生成数据库及逆向生成
- activiti监听器使用
- 树莓派做FM发射器
- spring使用aspectj开发的增强类型注解和aspectj在spring中用到的切点函数
- c# xml读取省,市,区三级联动,下拉列表展示
- UNPv2第十章:Posix信号灯
- Java线程监听,意外退出线程后自动重启
- Twitter 架构优化之路--Twitter是如何做到每秒处理3000张图片的
- 移动端页面开发
- Google Java编程风格指南
- 更新版本流程 ios
- Android自动滚动 轮播循环的ViewPager