一:重用切点表达式
package com.dhx.spring.aop.impl;
import java.util.Arrays;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/*
* 可以使用@Order(1)注解指定切面的优先级,值越小优先级越高。
*/
@Order(1)
@Aspect
@Component
public class VidationAspect {
/*
* 定义一个方法,用于声明切入点表达式,一般地,该方法中再不需要添加其他的代码
* 使用@Pointcut来声明切入点表达式
* 后面的其他通知直接使用方法名来使用当前的切入点表达式
*/
@Pointcut("execution(public int com.dhx.spring.aop.impl.ArtithmeticCalculatorImpl.*(..))")
public void declareJoinPointExpression() {
}
@Before("declareJoinPointExpression()")
public void vidationMethod(JoinPoint joinPoint) {
System.out.println("-->VidationAspect:"+Arrays.asList(joinPoint.getArgs()));
}
}