当前位置: 首页 > ds >正文

JavaWeb:SpringBootAOP切面实现统计方法耗时和源码解析

介绍

在这里插入图片描述

快速入门

在这里插入图片描述
在这里插入图片描述
1.导入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>
``	`
2.切面类```java
@Slf4j
@Aspect
@Component
public class RecordTimeApsect {/*** 统计耗时* @param joinPoint* @return* @throws Throwable*/@Around("execution(* com.itheima.service.impl.EmpServiceImpl.*(..))")public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable {// 1.获取当前时间long start = System.currentTimeMillis();// 2.执行目标方法Object result = joinPoint.proceed();// 3.得到运行时间long end = System.currentTimeMillis();log.info("运行时间:{}ms",(end-start));// 4.返回结果return result;}}

3.启动类EnableAspectJAutoProxy,加不加都行

核心概念

在这里插入图片描述

执行流程

在这里插入图片描述

通知类型

在这里插入图片描述
在这里插入图片描述

通知顺序(多个切面类)

在这里插入图片描述

切入点表达式-execution

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

切入点表达式-@annotation

在这里插入图片描述
在这里插入图片描述

连接点

在这里插入图片描述

http://www.xdnf.cn/news/8936.html

相关文章:

  • Mercy v2靶机通关笔记
  • 深度学习面试八股简略速览
  • 前端面经-虚幻引擎5
  • Vue 3(1) 用 Composition API 写一个简单的应用
  • 从本能到智能 | 人类大脑的三阶段进化与皮层神经元生成机制
  • Librosa是什么?用librosa进行多人声纹对比
  • 一些运算符重载的例子
  • Linux `date` 命令深度解析与高阶应用指南
  • 深入解析嵌入式开发核心问题 ——从总线协议到系统架构,全面掌握设计精髓
  • Maven基础篇
  • MCP协议:开发者生态系统的未来基石?
  • Python GDAL 库离线安装
  • 塑料杯子什么材质最好,用起来是不是安全?
  • 软件工程重点复习
  • Python之Pandas
  • 考虑安全稳定约束的优化调度综述
  • docker部署XTdrone
  • 5月25日day36打卡
  • 动态导入与代码分割实战
  • 二叉树--OJ2
  • Android组件化框架设计与实践
  • 计算机视觉---YOLOv1
  • Java 中的 super 关键字
  • 17. Qt系统相关:文件操作
  • 【Python 集合 Set 】全面学习指南
  • 【linux】mount命令
  • 卷积神经网络(CNN)深度讲解
  • NextJS 项目,编译成功,但是启动失败的解决方案
  • [Java恶补day6] 15. 三数之和
  • Missashe考研日记—Day44-Day50