博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Spring Recipes》第三章笔记4:Reusing Pointcut Definit...
阅读量:6225 次
发布时间:2019-06-21

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

hot3.png

《Spring Recipes》第三章笔记4:Reusing Pointcut Definitions

问题

使用注解在不同的通知中声明的切面表达式(pointcut expression)可能相同。

解决方案

Spring支持单独定义一个切面表达式(pointcut expression),然后再不同的通知中重用(reuse)。
步骤:
1、首先建立一个切面,在@Pointcut注解中定义表达式,方法内容为空。
public class CalculatorPointcuts {@Pointcut("execution(* *.*(..))")public void loggingOperation() {}}

2、在通知中直接使用以上方法名替代表达式即可。
public class CalculatorLoggingAspect {... ...    @Before("CalculatorPointcuts.loggingOperation()")    public void logBefore(JoinPoint joinPoint) {        ... ...    }    @AfterReturning(pointcut = "CalculatorPointcuts.loggingOperation()",returning = "result")    public void logAfterReturning(JoinPoint joinPoint, Object result) {        ... ...    }    @AfterThrowing(pointcut = "CalculatorPointcuts.loggingOperation()",throwing = "e")    public void logAfterThrowing(JoinPoint joinPoint, IllegalArgumentException e) {        ... ...    }@Around("CalculatorPointcuts.loggingOperation()")public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {...}}

转载于:https://my.oschina.net/pkpk1234/blog/58251

你可能感兴趣的文章
前加绩中国、信雅达高级全栈工程师:吴劲松
查看>>
-bash: pod: command not found 解决办法
查看>>
GCD hdu1695容斥原理
查看>>
Node.js:回调函数
查看>>
python 发送邮件 <QQ+腾讯企业邮箱>
查看>>
细数JDK里的设计模式
查看>>
Linux~上部署.net MVC出现的问题与解决
查看>>
DDD~充血模型和失血模型
查看>>
android DPI与分辨率的关系及计算方式
查看>>
forward_list
查看>>
伪分布式网络爬虫框架的设计与自定义实现(一)
查看>>
解决npm ERR! Unexpected end of JSON input while parsing near的方法汇总
查看>>
MySQL 入门
查看>>
js的操作及css样式
查看>>
bootstrapValidator关于js,jquery动态赋值不触发验证(不能捕获“程序赋值事件”)解决办法...
查看>>
数据库设计基础>范式
查看>>
POJ 3461 Oulipo(模式串在主串中出现的次数)
查看>>
Openstack的镜像属性
查看>>
【分享】用Canvas实现画板功能
查看>>
C++走向远洋——46(教师兼干部类、多重继承、派生)
查看>>