美文网首页
Spring AOP初识

Spring AOP初识

作者: 宋雨轩同学 | 来源:发表于2018-04-30 15:25 被阅读44次

    AOP 的概念

    1:理解AOP是什么

       * AOP是Aspect-oriented programming 面向切面(方面)的编程的简写
       * AOP的实现可以把业务逻辑和系统级的服务进行隔离,使业务逻辑跟各个系统级服务的耦合度降低,
       * 提高程序的重用性和开发效率
       * 业务逻辑:某个类的某个方法本身要实现的功能.
       * 系统级的服务:系统的日志,事务,权限验证
       * 举例:村支书找村民通知一个事情, 原来要一个一个分别去告诉他们,有了AOP(广播)以后,对广播以后,大家都知道

    2:怎么实现AOP

        * AOP的底层实现的原理都是动态代理
       * 注意:动态代理有两种方式:jdk动态代理 /cglib动态代理
       * jdk的动态代理机制只能代理实现了接口的类
       * cglib的动态代理既可以代理实现了接口的类,也可以代理没有实现接口的类

    3:AOP一些专业术语

       * 切面(Aspect) 就是交叉在各个业务逻辑中的系统服务,类似于安全验证,事务处理,日志记录都可以理解为切面
       * 织入(weaving) 就是将切面代码插入到目标对象某个方法的过程,相当于我们在jdk动态代理里面的 invocationHandler接口方法的内容
       * 连接点(JointPoint) 理论上可能被切面织入的所有方法 ,比如addStudent,delStudent ,getStudentList.....
       通常所有方法都可以被称为连接点
       * 切入点(PointCut) 就是实际上被切面织入的方法
       * 目标对象(target) 就是切入点和连接点所属的 类 StudentService
       * 通知(Advice) 就是切面的实现,切面织入的目标对象,时间点(方法执行前 ,后,前后,异常)以及内容
       * 顾问(Advisor) 其实就是通知的一个封装和延伸,可以将通知以更为复杂的方式织入到某些方法中
       * 将切面织入到目标对象的连接点方法,使连接点成为切入点

    4:Spring的AOP实现

    4.1 搭建springAOP开发环境需要引入的jar包

       * aopalliance-1.0.jar
       * spring-aop-4.2.1.RELEASE.jar
    注意:引入lib包到项目中

    4.2 :各种通知(前置通知,后置通知,环绕通知,异常通知)

       * 前置通知 implement MethodBeforeAdvice
       * 后置通知 implement AfterReturningAdvice
       * 环绕通知 implement org.aopalliance.intercept.MethodInterceptor;
       * 异常通知 implement ThrowsAdvice

    4.3 :配置通知和应用通知

       * 注册通知 <bean id = "beforeAdvice" class = ""/>
       * 注册代理生成器(注入目标类接口,目标类,通知)

    4.4 通知的注意点

       * 在代理类生成器的配置里面 配置接口的<property name = "interfaces" value="接口" >默认可以省略
       * 因为后置通知是在目标方法执行后才执行 ,他可以得到目标方法返回的值 ,但是不能改变他的值
       * 环绕通知有在目标方法执行前的代码,也有在目标方法执行后的代码,可以得到目标方法的值,也可以改变它

    相关文章

      网友评论

          本文标题:Spring AOP初识

          本文链接:https://www.haomeiwen.com/subject/punzlftx.html