• (III)AOP:第二节:AOP概述


    一、AOP概述

      (1)AOP(Aspect-Oriented Programming,面向切面编程),是一种新的方法论,是对传统 OOP(Object-Oriented Programming, 面向对象编程)的补充;
      (2)AOP 编程操作的主要对象是切面(aspect),而切面用于模块化横切关注点(公共功能)
      (3)在应用 AOP 编程时,仍然需要定义公共功能,但可以明确的定义这个功能应用在哪里,以什么方式应用,并且不必修改受影响的类,这样一来横切关注点就被模块化到特殊类的,这里的类通常称之为“切面

       (4)AOP 的好处

        ① 每个事物逻辑位于一个位置,代码不分散,便于维护和升级
        ② 业务模块更简洁,只包含核心业务代码
        ③ AOP 图解
        

    二、AOP 术语

      

      横切关注点:从每个方法中抽取出来的同一类非核心业务。(日志、验证)

      切面类(Aspect):又称成切面,封装横切关注点信息的类,每个关注点体现为一个通知方法。

      通知(Advice):又称通知方法,切面必须要完成的各个具体工作。

      目标(Target):被通知的对象。(作用于的对象)

      代理(Proxy):向目标对象应用通知之后创建的代理对象。

      连接点(JoinPoint)

        横切关注点在程序代码中的具体体现,对应程序执行的某个特定位置。

        例如:类某个方法调用前、调用后、方法捕获到异常后等。

        在应用程序中可以使用横纵两个坐标来定位一个具体的连接点:

        

       切入点(Pointcut)

      定位连接点的方式,每个类的方法中都包含多个连接点,所以连接点是类中客观存在的事物。
            如果把连接点看做数据库中的记录,那么切入点就是查询条件——AOP 可以通过切入点定位到特定的连接点。
            切点通过 org.springframework.aop.Pointcut 接口进行描述,它使用类和方法作为连接点的查询条件。   

       

      图解:

        

      

  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/niujifei/p/15441315.html
Copyright © 2020-2023  润新知