Spring4-SpringAOP&五种通知

SpringAOP

SpringAOP基础

  • 加入jar包

    • ​ com.springsource.net.sf.cglib-2.2.0.jar
      ​ com.springsource.org.aopalliance-1.0.0.jar
      ​ com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
      ​ commons-logging-1.2.jar
      ​ spring-aop-5.1.8.RELEASE.jar
      ​ spring-aspects-5.1.8.RELEASE.jar
      ​ spring-beans-5.1.8.RELEASE.jar
      ​ spring-context-5.1.8.RELEASE.jar
      ​ spring-core-5.1.8.RELEASE.jar
      ​ spring-expression-5.1.8.RELEASE.jar
  • 在配置文件中加入aop命名空间

    • 在这里插入图片描述
  • 基于注解的方式来使用 AOP

    • 在配置文件中加入如下配置

      <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

    • 把横切关注点的代码抽象到切面的类中

      • 切面首先是一个IOC中的bean,即加入@Component 注解
      • 切面还需要加入@Aspect 注解
      • 在这里插入图片描述
    • 在类中声明各种通知

      • 声明一个方法
      • 在方法前加入@Before 注解
    • 可以在通知方法中声明一个类型为JoinPoint的参数。然后就能访问连接细节。如方法名称和参数值

      • @Aspect //声明切面
        @Component //注释 放入IOC容器中
        public class LoggingAspect {
        //声明该方法是一个前置通知:在目标方法方法开始之前执行 *号代表了加减乘除四个方法
        @Before(“execution(* com.atguigu.spring.aop.impl.ArithmeticCalculator.*(int,int))”)
        public void beforeMethod(JoinPoint joinPoint) { //上面的i 和j 是形参的名字 没有意义所以去掉
        String methodName=joinPoint.getSignature().getName();//方法名
        List args=Arrays.asList(joinPoint.getArgs());//参数
        System.out.println(“The method”+methodName+" begins with"+args);
        }
        }
  • aop.impl中的ArithmeticCalculatorImpl类

    • 在这里插入图片描述
  • aop.impl中的LoggingAspect类

    • 在这里插入图片描述
  • aop.impl中的Main类

    • 在这里插入图片描述
  • aop.impl中的ArithmeticCalculator接口

    • 在这里插入图片描述

前置通知&返回通知&异常通知&后置通知&环绕通知

  • applicationContext-xml.xm文件中

    • 在这里插入图片描述
    • 在这里插入图片描述
  • 切面LoggingAspect中

    • 在这里插入图片描述
    • 在这里插入图片描述
    • 在这里插入图片描述
    • 在这里插入图片描述
  • 切面VlidationAspect中

    • 在这里插入图片描述
  • ArithmeticCalculatorImpl类中

    *在这里插入图片描述

  • ArithmeticCalculator接口中

    • 在这里插入图片描述
  • Main方法中
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值