在AOP中,切点、切面和通知是三个核心概念,下面分别进行介绍。

  1. 切点(Pointcut)

切点是一个表达式,用于描述哪些类的哪些方法会被拦截。通常情况下,切点会使用表达式语言(如AspectJ)来定义。在一个应用程序中,通常会有多个切点。

  1. 切面(Aspect)

切面是一个类,其中包含了多个通知和切点。切面用于描述在哪些类、哪些方法的什么位置上执行哪些通知。一个应用程序中,通常会有多个切面。

  1. 通知(Advice)

通知是在切点处执行的代码。通知定义了在目标方法执行前、执行后或异常抛出时需要执行的代码。在Spring AOP中,通知分为以下几种类型:

  • 前置通知(Before advice):在目标方法执行前执行。
  • 后置通知(After advice):在目标方法执行后执行,无论目标方法是否抛出异常都会执行。
  • 返回通知(After returning advice):在目标方法正常返回后执行。
  • 异常通知(After throwing advice):在目标方法抛出异常后执行。
  • 环绕通知(Around advice):在目标方法执行前后都执行,可以控制目标方法的执行。

以上几种通知类型都可以使用注解或XML方式来定义。

总结:

在AOP中,切点用于描述哪些类的哪些方法会被拦截,切面用于描述在哪些类、哪些方法的什么位置上执行哪些通知,通知用于定义在目标方法执行前、执行后或异常抛出时需要执行的代码。这三个概念是AOP的核心概念,理解它们对于使用AOP非常重要。

AOP中的切点、切面、通知等相关推荐

  1. Spring AOP 中的切点是什么?如何定义切点?

    Spring AOP 中的切点是什么?如何定义切点? 什么是切点? 在 Spring AOP 中,切点(Pointcut)是指一组连接点(Join Point)的集合.连接点是程序执行过程中的某个特定 ...

  2. java切点配置_Spring AOP中定义切点的实现方法示例

    本文实例讲述了Spring AOP中定义切点的实现方法.分享给大家供大家参考,具体如下: 一 配置 xmlns:xsi="http://www.w3.org/2001/XMLSchema-i ...

  3. java方法设置切点_java相关:Spring AOP中定义切点的实现方法示例

    java相关:Spring AOP中定义切点的实现方法示例 发布于 2020-6-6| 复制链接 摘记: 本文实例讲述了Spring AOP中定义切点的实现方法.分享给大家供大家参考,具体如下:一 配 ...

  4. Spring AOP中定义切点(PointCut)和通知(Advice)

    本文讨论一下Spring AOP编程中的两个关键问题,定义切点和定义通知,理解这两个问题能应付大部分AOP场景. 如果你还不熟悉AOP,请先看AOP基本原理,本文的例子也沿用了AOP基本原理中的例子. ...

  5. Spring AOP中定义切点PointCut详解

    1.AOP是什么? 软件工程有一个基本原则叫做"关注点分离"(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年 ...

  6. Spring AOP中pointcut 切点详解

    Spring AOP中pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的. Pointcut可以有下列方 ...

  7. Spring AOP中定义切点的详细介绍

    AOP的切点定义大部分的人都知道excecution()其实在AOP中有很多关旭切点的参数,用好可这些参数可以让我们的工作事半功倍, 一.excecution() 关于excecution必须要介绍的 ...

  8. Spring源码分析之Aop中拦截器,适配器,通知之间的关系

    首先举一个例子: public class MethodBeforeAdviceInterceptor implements MethodInterceptor, Serializable {priv ...

  9. 理解AOP思想(面向切面编程)

    本文旨在帮助还没有理解AOP的童鞋看透弄懂AOP,也欢迎高手批评指正. 先说一个Spring是什么吧,大家都是它是一个框架,但框架这个词对新手有点抽象,以致于越解释越模糊,不过它确实是个框架的,但那是 ...

最新文章

  1. 16.04linux 安装微信,Ubuntu 16.04安装微信的过程记录
  2. 解决 Out of range value adjusted for column 'ID' at row 1
  3. mysql charindex_mysql中替代charindex的函数substring_index、find_in_set | 学步园
  4. 学习笔记(十九)——Python与数据库交互(mysql、redis)
  5. 【思维题 状压dp】APC001F - XOR Tree
  6. 一个案例说出python的十余个语法知识点
  7. mysql对其他IP授权访问
  8. sqlyog for MySQL远程连接的时候报错mysql 1130的解决方法
  9. ctp系统配套服务器,CTP系统
  10. t–sql pl–sql_SQL串联正确完成–第1部分–可疑做法
  11. IT运维人员该学习哪些技术
  12. C++ 0x/11学习笔记
  13. window.open 卡死
  14. 近期你已经授权登录过_不查不知道,我的微信、QQ 居然授权登录过这么多应用!...
  15. 微信公众号JS-SDK多图上传爬坑指南
  16. 最优化方法四:线性规划与非线性规划
  17. CSS | width、height中auto与100%与固定值有什么不同
  18. 重磅!RTK差分共享猫APP即将开源!!
  19. [ActionScript 3.0] AS3.0 调试出现安全沙箱冲突错误解决办法
  20. 演化计算(蚁群算法、粒子群算法、遗传算法、演化规则......)

热门文章

  1. anchors.fill和anchors.centerIn区别
  2. 深度学习 lr_scheduler 简易的warmup装饰器
  3. 利用godaddy的cpanel邮箱服务器的smtp发邮件
  4. 曝光程序员的桌面!有点心酸 |每日趣闻
  5. Selenium原理探秘
  6. 手把手教你制作一目了然的可视化地图
  7. linux 内核 空指针,Linux 内核IS_ERR函数
  8. 【学习笔记】arduino mega2560 和 ESP8266WIFI模块 联合调试 ①
  9. jquery循环创建div
  10. Redis五大基本数据类型(String、LIst、Set、Hash、ZSet)及其底层结构