程序员社区

【Spring学习及总结20】环绕通知

先写一个目标类:

@Component
public class MyMath implements Caculator {
    public int add(int i, int j) {
        return i+j;
    }
    public int sub(int i, int j) {
        return i-j;
    }
    public int mul(int i, int j) {
        return i*j;
    }
    public int div(int i, int j) {
        return i/j;
    }
}

写一个切面类:

@Aspect
@Component
public class LogUtils {

    @Pointcut("execution(public int com.hh.pojo.MyMath.*(int,int))")
    public void MyPoint(){

    @Around("MyPoint()x")
    public Object myAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        Object[] args = proceedingJoinPoint.getArgs();
        Object proceed = null;
        try {
            System.out.println("环绕前置通知");
            //目标方法的调用
            proceed = proceedingJoinPoint.proceed(args);
            System.out.println("环绕返回通知");
        } catch (Exception e) {
            System.out.println("环绕异常通知");
        }finally {
            System.out.println("环绕后置通知");
        }
        return proceed;
    }
}

写测试类:

public class MyTest {
    ApplicationContext context =
            new ClassPathXmlApplicationContext("spring.xml");
    @Test
    public void test(){
        Caculator bean = bean = context.getBean(Caculator.class);;
        bean.add(1,2);
    }
}

在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Spring学习及总结20】环绕通知

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区