【SpringBoot笔记分享】用Aspect实现切面(以记录日志为例)

【SpringBoot学习笔记】深入解读使用Aspect实现切面(以记录日志为例) spring中的切面Aspect,这是Spring的一大优势。面向切面编程往往让我们的开发更加低耦合,也大大减少了代码量,同时呢让我们更专注于业务模块的开发,把那些与业务无关的东西提取出去,便于后期的维护和迭代。 视频是看的动力节点的视频,整理了这篇博客作为笔记,以后复习时候看看,也分享给有需要的小伙伴。 视频资源:https://www.bilibili.com/video/BV1XQ4y1m7ex 相关概念 1. 切面(Aspect): 首先要理解‘切’字,需要把对象想象成一个立方体,传统的面 阅读详情

今天我们来说说spring中的切面Aspect,这是Spring的一大优势。面向切面编程往往让我们的开发更加低耦合,也大大减少了代码量,同时呢让我们更专注于业务模块的开发,把那些与业务无关的东西提取出去,便于后期的维护和迭代。

视频是看的动力节点的,然后整理了这篇博客作为笔记,以后复习时候看看,也分享给有需要的小伙伴。

视频资源:https://www.bilibili.com/video/BV1XQ4y1m7ex

相关概念

1. 切面(Aspect):

首先要理解‘切’字,需要把对象想象成一个立方体,传统的面向对象变成思维,类定义完成之后(封装)。每次实例化一个对象,对类定义中的成员变量赋值,就相当于对这个立方体进行了一个定义,定义完成之后,就等着被使用,等着被回收。

面向切面编程则是指,对于一个我们已经封装好的类,我们可以在编译期间或在运行期间,对其进行切割,把立方体切开,在原有的方法里面添加(织入)一些新的代码,对原有的方法代码进行一次增强处理。而那些增强部分的代码,就被称之为切面,如下面代码实例中的通用日志处理代码,常见的还有事务处理、权限认证等等。

2. 切入点(PointCut):

要对哪些类中的哪些方法进行增强,进行切割,指的是被增强的方法。即要切哪些东西。

3. 连接点(JoinPoint):

知道了要切哪些方法后,剩下的就是什么时候切,在原方法的哪一个执行阶段加入增加代码,这个就是连接点。如方法调用前,方法调用后,发生异常时等等。

4. 通知(Advice):

通知被织入方法,改如何被增强。定义切面的具体实现。那么这里面就涉及到一个问题,空间(切哪里)和时间(什么时候切,在何时加入增加代码),空间我们已经知道了就是切入点中定义的方法,而什么时候切,则是连接点的概念。

5. 目标对象(Target Object):

被一个或多个切面所通知的对象,即为目标对象。

6. AOP代理对象(AOP Proxy Object):

AOP代理是AOP框架所生成的对象,该对象是目标对象的代理对象。代理对象能够在目标对象的基础上,在相应的连接点上调用通知。

7. 织入(Weaving):

将切面切入到目标方法之中,使目标方法得到增强的过程被称之为织入。

AOP 必须的依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

日志实体类


        
【动力节点Springboot笔记】使用Aspect实现切面(以记录日志为例) 今天我们来说说spring中的切面Aspect,这是Spring的一大优势。面向切面编程往往让我们的开发更加低耦合,也大大减少了代码量,同时呢让我们更专注于业务模块的开发,把那些与业务无关的东西提取出去,便于后期的维护和迭代。 视频看的动力节点的视频,整理了这篇博客作为笔记,以后复习时候看看,也分享给有需要的小伙伴。 视频资源:https://www.bilibili.com/video/BV1XQ4y1m7ex 相关概念 1. 切面(Aspect): 首先要理解‘切’字,需要把对象想象成一个立方 阅读详情

相关推荐

SpringBoot使用切面添加controller日志,避免少造轮子

SpringBoot使用切面添加controller日志,避免少造轮子。

e_r_yuaner的博客 2091

【特殊情况】SpringBoot的@Aspect注解不起作用的问题

关于SpringBoot踩的坑。

欢迎。 1万+

SpringBoot AOP与自定义注解实现敏感字段自动加解密

在数据安全领域,敏感信息加密是保障用户隐私和合规性的基础技术。其核心原理是通过特定算法(如AES)将明文转换为不可读的密文,确保数据在存储和传输过程中的机密性。这项技术的价值在于将安全能力内化为基础设施,实现业务逻辑与安全逻辑的解耦,从而提升系统的可维护性和扩展性。典型的应用场景包括用户手机号、身份证号、邮箱等个人敏感数据的自动化处理。本文聚焦于利用SpringBoot的AOP(面向切面编程)和自定义注解机制,构建一套“声明即加密”的自动化处理框架。通过定义`@SensitiveField`注解,结合可插拔

weixin_30460489的博客 458

SpringBoot高并发点餐系统实战:库存防超卖与支付回调设计

高并发在线交易系统是现代互联网应用的核心架构之一,其核心原理在于通过分布式技术应对海量用户同时请求的场景,确保系统的高可用与数据一致性。这一技术价值在于支撑电商、金融、即时服务等关键业务的大规模稳定运行。在应用场景上,高校食堂点餐系统是典型的瞬时高并发场景,需要处理下单、支付、库存同步等复杂业务链。本文聚焦于如何利用SpringBoot框架,结合Redis原子操作实现库存防超卖,并通过幂等性设计保障支付回调的最终一致性,为类似高压力业务场景提供工程实践参考。

weixin_30764771的博客 293

Spring Boot获取HTTP请求头:从@RequestHeader到RequestContextHolder的实战指南

在Web开发中,HTTP请求头是客户端与服务器通信的关键载体,承载了用户代理、授权令牌、会话标识等重要信息。理解其工作原理是构建安全、高效后端服务的基础。Spring Boot作为主流的Java Web框架,提供了多种获取请求头的技术方案,每种方案都对应着不同的设计哲学与适用场景。例如,通过@RequestHeader注解可以实现声明式的参数绑定,简化Controller层代码;而直接操作HttpServletRequest对象则提供了最大的灵活性,适用于过滤器等底层组件。这些技术的核心价值在于帮助开发者根

weixin_34292402的博客 426

2025京东后端面试高频考点与答题思路全解析

在Java后端开发岗位的求职中,大厂面试越来越注重对原理级理解和场景化设计能力的考察。无论是集合框架的底层实现、并发编程的线程池与锁机制,还是JVM内存管理与垃圾回收,面试官都倾向于通过追问源码细节来检验候选人的真实功底。同样,MySQL的索引优化、事务隔离与MVCC,以及Redis的缓存穿透、击穿和分布式锁设计,都是高频考核点。这些技术概念不仅决定了系统的性能与稳定性,更在实际工程中支撑着高并发、高可用的业务场景。从基础原理到实践应用,逐步深入理解这些核心知识,能帮助你构建完整的后端技术体系。本文结合京东

weixin_34127717的博客 359

SpringBoot项目切面编程AOP之@Aspect

aop切面编程想必大家都不陌生了,aspect可以很方便开发人员对请求指定拦截层,一般是根据条件切入到controller控制层,做一些鉴权、分析注解、获取类名方法名参数、记录操作日志等。2、aop默认无法切入 private 修饰的方法,切入点表达式定义的修饰符要和被切入的方法修饰符一致,否则无法切入。5、@Around:环绕增强,包围一个连接点的增强,最强大的一个方式,且常用。3、使用切入点切入标记注解@Before、@After、@Around等。2、定义切入点标记注解@Pointcut。

hkl_Forever的博客 1万+

Spring Boot - aop 切面对请求进行日志记录

** * < p > * 测试 Controller * < / p > * / @Slf4j @RestController public class TestController {/ ** * 测试方法 http : // localhost : 8080 / test * * @param who 测试参数 * @ return {

学无止境 782

USB3.0 Type-B连接器SSTX/SSRX信号定义常见错误与硬件设计避坑指南

本文详细解析了USB3.0 Type-B连接器中SSTX/SSRX信号的定义标准与常见设计错误。针对连接器厂商图纸可能出现的信号标识错误,提供了实用的排查方法和硬件设计避坑指南,帮助工程师避免因引脚定义颠倒导致的通信降级或故障,确保USB3.0高速传输的稳定性。

gg901的博客 1267

Pico-实时预览工具PreviewTool

Unity XR SDK与Preview Tool下载链接:SDK - Pico Developer Platform1、下载Preview Tool后,将PreviewTool的APK先安装在VR头显里2、在PC端打开Preview Tool.exe文件Window -> Package Manager -> Add package from disk,选择下载的pico sdk中的package.json(如下图),Open导入。Edit -> Project Settings,设置设备和安卓版本,如下

晴天下的大头娃娃 4251

XPe开发初体验(一)XPe概述

XP Embedded是微软Windows Embedded产品线中非常重要的一环,不过比起大名鼎鼎的Windows Embedded CE,XPe显得过于低调了。在接下来的一段时间里,我希望能够用六篇的篇幅来描述一下XPe的整个开发过程。这个系列文章主要是针对有Windows编程经验,但是没有嵌入式开发经验的开发者,提供一些概念和开发过程的初步介绍。XP Embedded是一个基于Windo

aawolf = new Mobile.MVP 1万+

抖音a_bogus参数逆向避坑指南:从环境检测到XHR请求的全流程解析

本文详细解析了抖音a_bogus参数在v1.0.1.19版本下的逆向工程全流程,重点介绍了如何通过PyV8Env框架进行有效的补环境操作,以绕过严格的环境检测。内容涵盖从环境初始化、关键事件触发到模拟XHR请求获取签名的完整步骤,并提供了可运行的Python代码示例和常见检测点的避坑指南,帮助开发者稳定生成有效的a_bogus参数。

tech5的博客 600

【62】OpenCV C++实战篇——【项目实战】OpenCV C++ 精准定位“十字刻度尺”中心坐标,过滤图片中的干扰,精准获取十字交点坐标

本文针对工业相机拍摄的2000万像素图像中十字刻度尺的精确定位问题进行了研究。面对图像较暗、存在红黄干扰、记号笔涂抹及细节模糊等难点,提出了一种基于霍夫变换的解决方案。通过灰度化、反色、二值化预处理后,对比分析了多尺度霍夫直线(HoughLines)和渐进概率霍夫线段(HoughLinesP)两种方法的定位效果。实验结果表明,HoughLinesP由于具有最小线段长度和间隙约束,在直线贴合度和交点定位精度上表现更优,其返回的线段端点坐标也更便于后续处理。该研究为工业视觉中微小目标的精确定位提供了实用参考。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 975

Git下载与安装

一、Git下载 二、Git安装

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 6万+

YOLOv11改进 ,YOLOv11改进主干网络为MobileNetV3,助力涨点

MobileNetV3通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法,通过新颖的架构改进进一步提升了性能。本文开始探讨了自动化搜索算法与网络设计如何协同工作,以利用互补方法来提升整体技术水平。通过这一过程,创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对高资源和低资源使用场景。这些模型随后被适配并应用于目标检测和语义分割任务。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1935

199、医疗内窥镜影像:微型镜头与高色彩保真度的ISP定制化方案

医疗内窥镜影像系统开发面临三大光学挑战:衍射极限导致分辨率下降,微型镜头色差严重,镀膜不足引发红外漏光。团队通过定制化ISP方案解决问题:采用分区色差补偿、红外泄露补偿技术,开发12区域分段颜色校正矩阵,并设计自适应伽马曲线。关键经验包括锁定白平衡避免术中偏色,优化FPGA流水线确保30fps流畅度,强调光学标定优先于算法优化。最终方案使DeltaE降至3以下,满足医生对组织颜色细微差异的识别需求,尤其解决了血管与脂肪边界辨识难题。

zzfmlxs的博客 264

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: SpringBoot超详细笔记之集成Redis
下一篇: Spring,SpringBoot,Springcloud都是干嘛的?你了解么?
Java_Coding1
博客等级 码龄5年 9粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值