【动力节点Springboot笔记】使用Aspect实现切面(以记录日志为例)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

今天我们来说说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学习笔记】深入解读使用Aspect实现切面(以记录日志

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

f5465245的博客 613

SpringBoot项目切面编程AOP之@Aspect

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

hkl_Forever的博客 1万+

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

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

e_r_yuaner的博客 2089

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

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

学无止境 777

springboot——日志切面处理

在外界访问资源的时候,需要作日志记录 但不可能在每个controller上面都写一遍日志记录的函数 因此需要使用AOP对controller进行一个日志方法的增强 步骤: 1、编写日志方法类 2、编写好切面,设置好切点表达式和注解 3、编写需要记录日志内容 ...

weixin_45625874的博客 4310

Spring Boot 使用切面记录日志

Spring Boot 使用切面记录日志

雨陆聪辰的博客 3281

SpringbootAspect实现切面(以记录日志

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

A_coding的博客 1068

SpringBoot使用Aspect实现切面,超详细

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

DDDYSz的博客 3万+

超详细学习笔记Springboot中用Aspect实现切面日志

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

weixin_54585403的博客 2105

Springboot笔记使用Aspect实现切面日志

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

Javanewspaper的博客 520

SpringBoot使用Aspect实现切面日志

spring中的切面Aspect,这是Spring的一大优势。面向切面编程往往让我们的开发更加低耦合,也大大减少了代码量,同时呢让我们更专注于业务模块的开发,把那些与业务无关的东西提取出去,便于后期的维护和迭代。 相关的学习教程我是看的动力节点的视频,然后整理了这篇博客作为笔记,方便以后复习时候看看,也分享给有需要的小伙伴。 视频链接:https://www.bilibili.com/video/BV1XQ4y1m7ex 相关的概念 1. 切面Aspect): 首先要理解‘切’字,需要把对象想象

assdfgdfgjhtdo的博客 222

动力节点王鹤SpringBoot3学习笔记——第二章 掌握SpringBoot基础篇

pom.xml中的指定spring-boot-starter-parent作为坐标,表示继承Spring Boot提供的父项目。从 spring-boot-starter-parent 继承以获得合理的默认值和完整的依赖树,以便快速建立一个Spring Boot项目。

DDDYSz的博客 469

springboot-动力节点-记录

004创建 Snapshot不稳定版本 Released已完成的 创建spring initialize,package不带数字,如下红框内删除 如果要创建web项目,next后,dependencies中左边选择Web,右边勾选Spring Web,Next 005 .gitignore 与git相关的 mvnw、mvnw.cmd与maven相关的 modelVersion Maven工程的版本 Resources Static:Js,cs,图片,小图标 Templates:模板,前端模板。Spring

抗忙北鼻来斯购 5365

SpringBoot 笔记链接

https://cloudlandboy.github.io/myNote/#/backend/springboot/_sidebar

jlb882800的专栏 349

springboot框架的理解,你了解多少呢

如果大家想要更详细的去了解,去掌握,可以通过动力节点Java培训的Spring Boot视频教程免费学习,对于想要深入了解和掌握Spring Boot框架的人来说。总的来说,Spring Boot框架的目标是简化Java应用程序的开发和部署过程,提供开箱即用的功能和工具,使开发人员能够更专注于业务逻辑的实现而不用过多关注配置和细节。Spring Boot是一个用于开发Java应用程序的框架,它简化了Java应用的搭建和部署过程,并提供了一套丰富的开发工具和开箱即用的功能。

2301_76637696的博客 141

动力节点Java微服务项目【动力商城】企业级实战项目

动力商城是以B2C模式运营的在线商城,总览企业及公司产品于一体,主打自主研发品牌以推广的互联网化新商城。系统采用的微服务架构模式。技术选型:Springboot+SpringCloud、Mybatis-plus 、MySQL、Redis、阿里云OSS、RabbitMQ、Oauth2.0+JWT、Linux、ECS、WeChat(appid,openid)微信小程序支付等相关技术。

m0_58118573的博客 800

Spring Boot和Vue.js前后端分离项目实战

其中,micr-common是公共服务,micr-web是Web服务,micr-database是数据库服务,micr-pay是支付服务,micr-task是定时任务服务。Vue.js的灵活性和易用性可以帮助你快速构建现代化的用户界面,提供良好的用户体验。总结来说,使用Spring Boot和Vue.js的组合可以提供一个全面的技术栈,用于开发盈利宝项目的后端和前端。你可以使用Spring Boot的丰富生态系统和Vue.js的插件库,结合其他相关技术,来满足这些需求。

2301_76637757的博客 385

RabbitMQ(007 消息可靠性part2)

1那里 设置confirm2那里 设置return 或设置备用交换机3那里设置三个持久化来进行可靠性4 消费者的自动确认改成手动确认persistent 持久化集群可以防止单点故障查看rabbit命令在环境变量里 所以都可以用启用的插件使用//TODO 可以在下面直接找到 计划要写的地方开启发布者return模式2.编写returnCallback,并引入进rabbitTemplate.setReturnsCallback写个错误的路由key进行验证。

wang_book的博客 1095
上一篇: SpringBoot集成Redis笔记-动力节点王鹤
下一篇: 【动力节点笔记】细说spring、springboot、springcloud三者的区别
Java___interview
博客等级 码龄6年 154粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值