美文网首页
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