在同一方法上链接切入点

时间:2014-09-08 19:03:38

标签: java spring aspectj

我有这个场景

public List<Object> buildList( Context ctx){
    List objList = new ArrayList();
    //process for objList
    return 
}

在方面我喜欢这个

@Pointcut("execution(* com.personal.service.ProcessList.buildList(..))")
public void interceptor1() {
    //pointcut identifier
}

/**
 * 
 * @param proceedingJoinPoint
 * @return
 */
@Around("interceptor1()")
public Object aroundAdvice(ProceedingJoinPoint proceedingJoinPoint){
    Object[] arguments = proceedingJoinPoint.getArgs();
    Context context = (Context) arguments[1];
    try {
        returnObj = proceedingJoinPoint.proceed();
    } catch (Throwable e) {
        e.printStackTrace();
    }
    if (context.equals("STANDARD"){
        return standardList( (buildList)returnObj,context);
    }
    else if (context.equals("PRIVELEGE") {
        return privList( (buildList)returnObj,context);
    }
}

我希望为STANDARD-- standardInterceptor和PRIVELEGE privelegeInterceptor设置两个独立的拦截器,而不是具有if else条件。这可能吗? 如何定义切入点首先运行标准拦截器然后再运行privelege拦截器然后给出响应。

由于

0 个答案:

没有答案