//实现MethodInterceptor接口。(扮演Advice通知的角色)
public class MyInterceptor implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { System.out.println(invocation.getMethod() + "==方法执行前=="); Object proceed = invocation.proceed(); System.out.println(invocation.getArguments() + "--方法执行后--"); return proceed; } }
@Configuration
public class MyInterceptorConfig {
//切点
public static final String traceExecution = "execution(* cn.qlq.service..*.*(..))";
@Bean
public DefaultPointcutAdvisor defaultPointcutAdvisor2() {
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression(traceExecution);
// 配置增强类advisor
DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor();
advisor.setPointcut(pointcut);
MyInterceptor interceptor = new MyInterceptor();
advisor.setAdvice(interceptor);
advisor.setOrder(1);
return advisor;
}
}
另外还有@aspect实现
更多资料:
spring aop