//定义切面@Aspectpublic class AnnotationPointCut { //定义切入点 @Before(value = "execution(* com.simple1.UserDaoImpl.*(..))") public void before(){ System.out.println("方法执行前"); } @After(value = "execution(* com.simple1.UserDaoImpl.*(..))") public void after(){ System.out.println("方法执行后"); }// 环绕方法,可以写一个参数,用于接收我们要切入的点 @Around(value = "execution(* com.simple1.UserDaoImpl.*(..))") public void around(ProceedingJoinPoint joinPoint) throws Throwable { System.out.println("环绕前");//环绕前,要在before前面 Object proceed = joinPoint.proceed();//执行被代理对象的方法 System.out.println(joinPoint.getTarget().getClass());// joinPoint.getSignature() 获取被代理对象被调用的方法签名 System.out.println(joinPoint.getSignature()); System.out.println("环绕后");//环绕后,要在after之前 }}
环绕方法可以添加一个参数
ProceedingJoinPoint joinPoint
是一个连接点的对象,里面保存着目标对象,可以调用连接点执行被代理的方法
xml上下文中需要的配置