【spring(三)】AOP总结

🌈键盘敲烂,年薪30万🌈

目录

一、AOP相关概念

[① AOP核心思想思想:](#① AOP核心思想思想:)

[② AOP专业术语:](#② AOP专业术语:)

二、AOP快速如入门

三、AOP工作流程

四、切入点表达式

[① 语法格式](#① 语法格式)

②支持通配符

③书写技巧

五、通知类型

①⭐环绕通知⭐

六、获取切入点参数


一、AOP相关概念

① AOP核心思想思想:

  • 无侵入式的功能增强

② AOP专业术语:

  • 连接点:原始方法
  • 切入点表达式:匹配连接点的式子(要追加功能的方法)
  • 通知:追加的功能
  • 切面:绑定通知和切入点

二、AOP快速如入门

AOP入门案例(基于注解 )

分析:

1.导入依赖坐标

2.制作连接点(数据层的方法)

3.定义切入点表达式

4.绑定切入点与通知关系(切面)

定义通知类:

java 复制代码
@Component
@Aspect
public class MyAdvice {
    // 定义切入点表达式
    @Pointcut("execution(void itpan.dao.impl.BookDaoImpl.update())")
    public void pt(){}

    // 定义通知和绑定关系
    @Before("pt()")
    public void method(){
        System.out.println(System.currentTimeMillis());
    }

}

加入支持AOP的注解

java 复制代码
@Configuration
@ComponentScan("itpan")
@EnableAspectJAutoProxy // 告诉spring 程序有基于注解开发的AOP
public class SpringConfig {
}

三、AOP工作流程

四、切入点表达式

① 语法格式

  • 标准格式:动作关键字(访问修饰符 返回值 包名.类名或接口名.方法名(参数) 异常名)
  • 例如:execution(public User com.itpan.service.BookService.findById(int))

②支持通配符

.. 任意

* 任意一个

③书写技巧

  • 权限修饰符一般为public 可省略 private不要省略
  • 包名书写尽量不要使用.. 常用*或精准匹配
  • 接口名/类名等通用名称使用*匹配 例如UserService 使用*Service
  • 方法名动词精准匹配,名词*匹配 例如getById 使用getBy*

五、通知类型

①⭐环绕通知⭐

注意:

返回值类型为Object

补充:

前置通知 @Before

后置通知 @After

运行成功后通知 @AfterReturning

抛出异常后通知 @AfterThrowing

六、获取切入点参数

环绕通知:ProceedingJoinPoing中getArgs()

其他通知:JoinPoint中getArgs()方法

注意:ProceedingJoinPoing与JoinPoint必须式方法中的第一个参数

相关推荐
_Evan_Yao4 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
梓豪csd5 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼5 小时前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
王中阳Go5 小时前
两个入口答案不一致先别调模型:6 行入口口径对账表(附脚本)
人工智能·后端·python·大语言模型·1024程序员节
thefool1122666 小时前
TCP 1
java·1024程序员节
码事漫谈6 小时前
消除AI幻觉,普通人能做的五件事
后端
金銀銅鐵8 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手8 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
Mk5987810 小时前
给 Agent 装上对话框 —— AgentScope-Java 接入 Spring Boot 与 SSE 流式实战
后端
付威202310 小时前
从 Loop 到 Runtime:rpi Agent Loop 与 Cordis 的边界、取舍与组合
后端