将参数传递给xml中不同切入点的相同方面方法

时间:2014-05-20 12:18:08

标签: java spring parameter-passing aop aspect

是否可以对多个切入点使用相同的方面方法,但是使用xml提供的参数不同? 像这样的东西(1和2是参数):

<!-- Aspect -->
<bean id="logAspect" class="LoggingAspect" />
<aop:config>
<aop:aspect id="aspectLoggging" ref="logAspect" >
    <aop:pointcut id="testAround" expression="execution(* methodA(..))" />
    <aop:pointcut id="testAroundC" expression="execution(* methodC(..))" />

    <!-- @Around -->
    <aop:around method="logProcess(1)" pointcut-ref="testAround" />
    <aop:around method="logProcess(2)" pointcut-ref="testAroundC" />
</aop:aspect>

当我调用methodA时,我希望logProcess方法输出1 当我调用methodC时,我希望logProcess方法输出2

我的logProcess方法:

public Object logProcess(ProceedingJoinPoint joinPoint) throws Throwable {}

Spring @Transactional wont rollback after putting aspect around method

1 个答案:

答案 0 :(得分:0)

我很不确定。

但是,您通常可以使用作为参数的ProceedingJoinPoint对象来实现此类功能:

public Object logProcess(ProceedingJoinPoint joinPoint) throws Throwable

    MethodSignature signature = (MethodSignature) joinPoint.getSignature();
    Method method = signature.getMethod();
    if(method.getName().equals("methodA")) {

    }
    //etc..