zoukankan      html  css  js  c++  java
  • Spring AOP概述

    横切关注点(cross-cutting point),散布于应用中多处的功能。从概念上讲是与应用的业务逻辑分离的。把横切关注点与业务逻辑分离是面向切面编程所解决的问题。

    切面帮助我们模块化横切关注点。

    通知(advice),定义了切面是什么以及何时使用。Spring有5种类型的通知。

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

    连接点(join point),在应用执行过程中能插入切面的一个点,可以是调用方法时、抛出异常时、修改一个字段时。切面代码利用这些点插入到应用的正常流程中,添加新行为。

    切点(pointcut),用来匹配通知所要织入的一个点或多个连接点。通常使用类和方法名来指定这些切点。

    切面(aspect),通知和切点的结合,共同定义切面的全部内容,是什么,在何时和何处完成功能。

    引入(introduction),允许我们向现有类添加新方法和属性。

    织入(weaving),把切面应用到目标对象并创建新的代理对象的过程。切面在指定的连接点被织入目标对象中,在声明周期里有多个点可以织入:

    • 编译期:切面在目标类编译时被织入。
    • 类加载期:切面在目标类加载到JVM时被织入。
    • 运行期:切面在应用运行时某个时刻被织入。

    Spring对AOP的支持

    Spring提供了4中类型的AOP支持:

    • 基于代理的经典的SpringAOP
    • 纯POJO切面
    • @AspectJ注解驱动的切面
    • 注入式AspectJ切面

    Spring所创建的通知都是用标准的Java类编写的。

    Spring在运行期把切面织入到Spring管理的bean中

    因为Spring基于动态代理,所以Spring只支持方法连接点。

    通过切点来选择连接点

    在SpringAOP中,使用AspectJ的切点表达式语言来定义切点。

  • 相关阅读:
    面向对象的-作用域
    什么时候会有作用域的形成
    面向对象-作用域
    1.3tableView向左滑动出现多个按钮操作
    tableView自带删除与添加操作
    使用偏好设置归档放到哪里
    使用RSA对数据进行加密
    12.22UIAlertController 使用
    在PCH中定制自己的LOG打印日志,分别在DEBUG 与 RELEASE的状态下处理,及如何把PCH引入到项目中
    在程序document文件夹里边创建新的文件夹及删除文件夹
  • 原文地址:https://www.cnblogs.com/minguo/p/10994322.html
Copyright © 2011-2022 走看看