zoukankan      html  css  js  c++  java
  • AOP面向切面编程相关核心概念

    • 横切,通知,连接点,切入点,切面

    -横切 关注点

    • 对那些方法进行拦截,拦截后怎么处理,这些就叫横切关注点

    • 比如 权限认证,日志,事务

    • 通知 Advice

      • 在特定的切点上执行的增强处理,有5种通知,后续介绍
      • 比如需要记录日志,控制事务,提前编写好通用模块,需要的地方直接调用
    • 连接点JoinPoint

      • 要用通知的地方,业务流程在运行过程中需要插入切面的具体位置
      • 一般是方法调用前后,全部方法都可以是连接点
    • 切入点 PointCut

      • 不能全部方法都是连接点,通过特定的规则来筛选连接点,就是PointCut,选中你想要的方法
      • 在程序中主要体现为书写切入点表达式(通过通配,在正则表达式)过滤出特定的一组JointPoint连接点
      • 过滤出相应的Advice 将要发生的joinpoint地方
    • 切面 Aspect

      • 通常是一个类,里面定义 切入点+通知,定义在什么地方,什么时间点,做什么事情
      • 通知Advice指明了时间和做的事情(前置,后置等)
      • 切入点pointCut指定在什么地方干这个事情
      • web接口设计中,web层->网关层->服务层->数据层,每一层之间也是一个切面,对象和对象,方法和方法之间都是一个个切面
    • 目标target

      • 目标类,真正的业务逻辑,可以在目标类不知情的条件下,增加新的功能到目标类的链路上
    • 织入Weaving

      • 把切面(某个类)应用到目标函数的过程成为织入
    • AOP代理

      • AOP框架创建的对象,代理就是目标对象的加强
      • Spring中的AOP代理可以使用JDK动态代理,也可以是CGLIB代理
  • 相关阅读:
    从句分析
    artDialog ( v 6.0.2 ) content 参数引入页面 html 内容
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 13 罗马数字转整数
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 12 整数转罗马数字
    Java实现 LeetCode 11 盛最多水的容器
    Java实现 LeetCode 11 盛最多水的容器
  • 原文地址:https://www.cnblogs.com/iamplus/p/15084404.html
Copyright © 2011-2022 走看看