spring-AOP

AOP

AOP:Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理
实现程序的统一维护的一种技术。是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而提高程序的可重用性,同时提高了开发的效率。?
  AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码?
  经典应用:事务管理、性能监视、安全检查、缓存、日志等
  • AOP实现原理
aop底层将采用代理机制进行实现。
  目标类有接口+实现类:底层采用jdk的动态代理Proxy实现。
  目标类有实现类:底层采用cglib字节码增强。
  • AOP术语
    1.target(目标类):需要被代理或增强的类。例如:UserService。
    2.Joinpoint(连接点):指可能被增强的方法。例如:所有的方法。
    3.PointCut(切入点):已经被增强的连接点。例如:addUser()
    4.advice(通知/增强):要增强的代码。例如:after、before。
    5. weaving(织入):指把增强advice应用到目标对象target来创建代理对象proxy的过程。
    6.proxy代理类
    7. sspect(切面):是切入点pointcut和通知advice的结合,组成一个特殊的面。

代理的实现方式

手动方式

  • JDK动态代理

    1.编写目标类接口+实现类。

    2.编写切面类,对连接点进行增强。

    3.创建工厂,生产目标类的代理类对象,对目标类进行增强。

    4.在配置文件中配置切面类和工厂类生产目标类的代理类对象。

    5.测试

  • CGLIB字节码增强

 

半自动方式

  • AOP联盟通知类型
  • 实现步骤

全自动方式

  AspectJ
  AspectJ是一个基于Java语言的AOP框架,Spring2.0开始,Spring AOP引入对Aspect的支持,AspectJ扩展了Java语言,提供了一个专门的编译器,在编译时提供横向代码的织入

 

spring-AOP

上一篇:python会员数据化运营基础知识


下一篇:解决HTML播放mp4格式视频的问题