在spring aop中的拦截多个方法的execution表达式怎么写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在spring aop中的拦截多个方法的execution表达式怎么写相关的知识,希望对你有一定的参考价值。
比如execution(* com.news.service.impl.*.*(..))左边的第一个*表示返回值,*代表任意类型
*.*:
第一个*是类名,表示com.news.service.impl包下的任意类
,第2个*表示该类中的任意方法
(..)表示方法的可变参数列表。
execution(* com.news.service.impl.*.*(..)的含义是切入点pointcut为com.news.service.impl包下所有类的所有方法都是切入点。
如果是execution( void com.news.service.impl.A.*(..)),这时的切入点为com.news.service.impl包下类A所有没有返回值的方法。 参考技术A expression="execution(* com.clouddrive.baseManage.service.impl..*.*(..)) " 改一下这里啊
Spring AOP 是不是可以拦截 线程内部调用的拦截方法?
比如:aop拦截say()方法,在thread里面调用这个方法,是否可以拦截
参考技术A 创建拦截类:@Aspect
public class MyAspect
/** 执行前拦截 */
@Before("execution(* t.t..service.*Service.*(..))")
public void before(JoinPoint point) throws Throwable
System.out.println("执行方法:" + point.getSignature().getDeclaringTypeName() + "." + point.getSignature().getName());
/** 执行后拦截 */
@After("execution(* t.t..service.*Service.*(..))")
public void after(JoinPoint point) throws Throwable
System.out.println("执行完成:" + point.getSignature().getDeclaringTypeName() + "." + point.getSignature().getName());
追问
你说的那个是正常情况下当然可以拦截了,这个和问的不是一个问题,问的是线程里面调用say()方法,在aop配置拦截的也是say(),是否可以拦截,如果可以,有什么好的方式
以上是关于在spring aop中的拦截多个方法的execution表达式怎么写的主要内容,如果未能解决你的问题,请参考以下文章