zoukankan      html  css  js  c++  java
  • 【Spring实战4】08---面向切面AOP

    ---恢复内容开始---

    在软件开发中,散布于应用中多处的功能成为横切关注点,常见的场景如日志,与业务逻辑分离,但是却直接嵌入业务逻辑。

    以电力公司统计定量为例

    AOP术语

    通知advice

      抄表员必须在家门口的电表上记录电量向电力公司报告,那么他们必须有一份住户清单,汇报信息,记录电量,其中记录电量才是他的主要工作,那么通常把它必须要完成的工作称为通知

      通知定义了切面是什么以及何时使用,除了描述切面要完成的工作,通知还解决了何时执行的工作,如在某个方法被调用之前?之后?之前和之后?还是在异样时调用?

      类型:

        前置通知:before  在目标方法被调用之前通知

               后置 After 在方法调用之后通知

        返回 after-returning  在方法执行成功后通知

        异常 after-throwing 在方法异常后通知

        环绕 around 通知了被通知的方法,调用之前与之后的行为

    连接点join point

      一个区域可能有多个住户,可能还有多个区域,各种类型的电表,但是他们的目标是所安装的电表,可以理解这里的电表为通知的连接点。

    切点pointcut

       每个抄表员被分别指定到某一区域的住户,如果通知定义了切面的“什么”和“何时”,那么切点就定义了何处,切点定义了会匹配通知所有织入的一个或者多个连接点,

    切面aspect

      切面就是通知和切点的结合。    抄表员要具体到那个区域抄谁家的电表

    引入

      引入允许我们向现有的类增加新方法或者属性

    织入

         把切面应用到目标对象并创建新的代理对象的过程

    Spring提供了4种类型的AOP支持

      基于代理的经典Spring AOP;

      纯POJO切面

      @AspectJ注解驱动的切面

      注入式AspectJ切面

    面向切面主要引用于程序中的日志、安全和事务管理模块。

    ---恢复内容结束---

  • 相关阅读:
    django 静态文件模版上传下载配置
    drf ModelViewSet之匹配路由参数
    Django drf序列化外键关联表ID以为字段
    Django 自关联递归序列化模块 django-rest-frame-recursive模块
    Python利用Psycopg2模块将Excel表格数据导入Postgressql
    PyTorch中view的用法
    P1113 杂务 【拓扑排序】
    P3916 图的遍历 【反向建图+DFS】
    P2814 家谱【map型的并查集】
    P1102 A-B 数对【map】
  • 原文地址:https://www.cnblogs.com/hylinux/p/6039818.html
Copyright © 2011-2022 走看看