2.Spring-AOP

AOP:Aspect Oriented Programming 面向切面编程

OOP:Object Oriented Programming 面向对象编程

一、日志

(1)硬编码与静态代理

硬编码:

静态代理:

未加日志的代理类:

加了日志的代理类:

测试:

(2)动态代理

(3)日志工具类

二、Spring简化jdk的proxy的动态代理

编写切面和通知方法实现AOP

切入点表达式通配符

切入点表达式的其他写法:

组件在容器中其实是代理对象:

通知方法执行流程:

JoinPoint连接点信息:

@PointCut抽取切入点表达式:

@Pointcut抽取切入点表达式

多切面执行顺序:

数字越小,越先执行,越在外围。

环绕通知:

(1)拦截器目标方法执行,执行前后进行修改

(2)一定需要抛出异常,方便多切面情况下异常感知链路是通的。

AOP应用场景:

相关推荐
ihgry1 天前
SpringCloudAlibaba
后端
悟空码字1 天前
SpringBoot + Redis分布式锁深度剖析,性能暴涨的秘密全在这里
java·spring boot·后端
奋进的芋圆1 天前
Spring Boot中实现定时任务
java·spring boot·后端
Jasmine_llq1 天前
《P3200 [HNOI2009] 有趣的数列》
java·前端·算法·线性筛法(欧拉筛)·快速幂算法(二进制幂)·勒让德定理(质因子次数统计)·组合数的质因子分解取模法
sww_10261 天前
xxl-job原理分析
java
星环处相逢1 天前
K8s 实战笔记:3 种发布策略 + YAML 配置全攻略
java·docker·kubernetes
BD_Marathon1 天前
Spring——容器
java·后端·spring
武子康1 天前
大数据-206 用 NumPy 矩阵乘法手写多元线性回归:正规方程、SSE/MSE/RMSE 与 R²
大数据·后端·机器学习
LaLaLa_OvO1 天前
spring boot2.0 里的 javax.validation.Constraint 加入 service
java·数据库·spring boot
小王和八蛋1 天前
负载均衡之DNS轮询
后端·算法·程序员