//实现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