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切面

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

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

  • 相关阅读:
    less本地环境输出hello-world
    HTML中的SEO和HTML语义化
    JS连等赋值的坑
    React官网首页demo(单文件实现版)
    高并发高可用的架构实践-静态架构蓝图(二)
    高并发高可用的架构实践-设计理念(一)
    云计算+区块链=BaaS
    001/Nginx高可用模式下的负载均衡与动静分离(笔记)
    001---mysql分库分表
    004--PowerDesigner设置显示1对多等关系
  • 原文地址:https://www.cnblogs.com/hylinux/p/6039818.html
Copyright © 2011-2022 走看看