美文网首页
SpringAOP详解

SpringAOP详解

作者: 暮秋moco | 来源:发表于2020-02-23 22:07 被阅读0次

    1. 什么是AOP?

    AOP (Aspect Oriented Programming) 即 面向切面编程,面向切面编程(AOP)和面向对象编程(OOP)类似,也是一种编程模式。

    2. 为什么要使用AOP?

    SpringAOP 是基于 AOP 编程模式的一个框架,它的使用有效减少了系统间的重复代码,达到了模块间的松耦合目的。AOP 采取横向抽取机制,取代了传统纵向继承体系的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。

    3. AOP框架

    目前最流行的 AOP 框架有两个,分别为 Spring AOP 和 AspectJ。

    • Spring AOP 使用纯Java实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类植入增强的代码。
    • AspectJ 是一个基于 Java 语言的 AOP 框架,从 Spring 2.0 开始,Spring AOP 引入了对 AspectJ 的支持。AspectJ 扩展了 Java 语言,提供了一个专门的编译器,在编译时提供横向代码的植入。

    4.AspectJ与SpringAOP的区别

    Spring aop 是一个跨 SpringIoC 的简单的 aop 实现, 它不打算作为一个完整的 AOP 解决方案,SpringAOP只能应用于由 Spring 容器管理的 bean。
    AspectJ 是原始的 aop 技术, 提供了完整的 aop 解决方案。它更健壮, 但也比 Spring AOP 复杂得多,AspectJ 可以在所有域对象中应用。
    我们常常在Spring框架中使用AspectJ注解来进行开发。

    5. AOP术语

    为了更好地理解 AOP,就需要对 AOP 的相关术语有一些了解,这些专业术语主要包含 Joinpoint、Pointcut、Advice、Target、Weaving、Proxy 和 Aspect。

    名称 说明
    Joinpoint(连接点) 指那些被拦截到的点,在 Spring 中,可以被动态代理拦截目标类的方法。
    Pointcut(切入点) 指要对哪些 Joinpoint 进行拦截,即被拦截的连接点。
    Advice(通知/增强) 指拦截到 Joinpoint 之后要做的事情,即对切入点增强的内容。
    Aspect(切面) 切入点和通知的结合。
    Target(目标) 指代理的目标对象。
    Weaving(植入) 指把增强代码应用到目标上,生成代理对象的过程。
    Proxy(代理) 指生成的代理对象。

    6.

    7.

    参考

    相关文章

      网友评论

          本文标题:SpringAOP详解

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