切面表达式
1)execution(* *(..))
//表示匹配所有方法
2)execution(public * com.controller.UserController.*(..))
//表示匹配com.controller.UserController类或接口中所有的公有方法
3)execution(* com.controller..*.*(..))
//表示匹配com.savage.server包及其子包下的所有方法,4大权限修饰符
//public,protected,private,default
4)execution(* get*(..))
//表示以 get开始的方法
5)execution(* com.controller.*.*(..))
//controller包下的任何的方法
java
AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext("com.org.zhurenjin.mySpring.aop");
OperateAddDelchengyi implOperate = (OperateAddDelchengyi)annotationConfigApplicationContext.getBean("implOperate");
System.out.println(implOperate);
implOperate.add(2,6);
implOperate.del(2,6);
implOperate.chengyi(2,6);
java
package com.org.zhurenjin.mySpring.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@Component
@Aspect
@EnableAspectJAutoProxy
public class AopAspect {
@Before("execution(public int com.org.zhurenjin.mySpring.aop.ImplOperate.*(..))")
public void before(JoinPoint joinPoint){
String name = joinPoint.getSignature().getName();
Object[] args = joinPoint.getArgs();
System.out.println(name+"方法的参数是"+ Arrays.toString(args));
}
@AfterReturning(value = "execution(public int com.org.zhurenjin.mySpring.aop.ImplOperate.*(..))",returning = "result")
public void afterReturn(JoinPoint joinPoint,Object result){
String name = joinPoint.getSignature().getName();
System.out.println(name+"方法的返回的数据是"+ result);
}
}