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

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.lryc.cn/news/2385871.html

相关文章:

  • RabbitMQ的其中工作模式介绍以及Java的实现
  • vue2项目搭建
  • Spring AI 源码解析:Tool Calling链路调用流程及示例
  • 2025年- H48-Lc156 --236. 二叉树的最近公共祖先(递归、深搜)--Java版
  • 【人工智能】低代码-模版引擎
  • Hertz+Kitex快速上手开发
  • 线程池配置经验总结
  • 机器学习课程设计报告 —— 基于二分类的岩石与金属识别模型
  • 分词算法BPE详解和CLIP的应用
  • STM32F103_Bootloader程序开发02 - Bootloader程序架构与STM32F103ZET6的Flash内存规划
  • 通过Auto平台与VScode搭建远程开发环境(以Stable Diffusion Web UI为例)
  • Windows_Rider C#语言开发环境构建
  • Unity 打包程序全屏置顶无边框
  • GAMES104 Piccolo引擎搭建配置
  • 第 29 场 蓝桥·算法入门赛
  • 用service 和 SCAN实现sqlplus/jdbc连接Oracle 11g RAC时负载均衡
  • Jenkins 中获取构建触发用户的完整指南
  • 防火墙流量管理
  • uniapp+ts 多环境编译
  • Linux系统移植①:uboot概念
  • linux 学习之位图(bitmap)数据结构
  • DAY 35
  • 理论篇一:了解webpack是什么,能解决什么问题,如何使用
  • AWS EC2实例安全远程访问最佳实践
  • 集群、容器云与裸金属服务器的全面对比分析
  • 【强化学习】#7 基于表格型方法的规划和学习
  • EasyRTC嵌入式音视频通信SDK一对一音视频通信,打造远程办公/医疗/教育等场景解决方案
  • Linux/aarch64架构下安装Python的Orekit开发环境
  • 网络安全-等级保护(等保) 3-2-1 GB/T 28449-2019 第6章 方案编制活动
  • Oracle Enqueue Names