据我所知,有两种方法可以实现这一目标:
@Pointcut("@annotation(org.springframework.transaction.annotation.Transactional)")
public void myPointcut() {}
@Pointcut("execution(* me.mypackage.MyClass.method0(*))||" +
"execution(* me.mypackage.MyClass.method1(*))||"+
"execution(* me.mypackage.MyClass.method2(*))||"+
"execution(* me.mypackage.MyClass.method3(*))||"+
"execution(* me.mypackage.MyClass.method4(*))")
public void myPointcut() {}
第一种方法应该方便得多。但是,我不想向这些方法添加其他自定义注释。在我的情况下,我只想使这些方法的切入点“不可见”。
因此,我必须使用第二种方法。但是对我来说似乎太复杂了,有什么办法可以缩短这种表达方式吗?
答案 0 :(得分:0)
只需合并并执行,它就可以正常工作。
@Pointcut("within(me.packages.TargetClass)")
public void classPointcut() {}
@Pointcut("execution(* method1(*)) && execution(* method2)")
public void methodPointcut() {}
并绑定建议,例如,围绕建议:
@Around("classPointcut() && methodPointcut()")
public Object foo(ProceedingJoinPoint pjp)