• 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的切点表达式语言来定义切点。

  • 相关阅读:
    剑指offer03-04
    五大算法-1.回溯法
    linux与操作系统(1)- 用户接口
    python中的装饰器
    mysql 创建数据库,用户并给用户设置权限
    centOS6.5 桌面状态栏消失 解决
    centOS linux 远程Mysql 记录之root用户密码丢失
    XStream.toXML() 简单两种使用实例
    FileInputStream和FileOutStream 简单的使用实例;
    orale 行转列或者 字符拼接函数 wmsys.wm_concat()函数 /instr(listagg(name,';') within group (order by o.srclinkedid)
  • 原文地址:https://www.cnblogs.com/minguo/p/10994322.html
Copyright © 2020-2023  润新知