2.Spring-AOP

AOP:Aspect Oriented Programming 面向切面编程

OOP:Object Oriented Programming 面向对象编程

一、日志

(1)硬编码与静态代理

硬编码:

静态代理:

未加日志的代理类:

加了日志的代理类:

测试:

(2)动态代理

(3)日志工具类

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

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

切入点表达式通配符

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

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

通知方法执行流程:

JoinPoint连接点信息:

@PointCut抽取切入点表达式:

@Pointcut抽取切入点表达式

多切面执行顺序:

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

环绕通知:

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

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

AOP应用场景:

相关推荐
我真会写代码9 分钟前
Redis核心特性详解:事务、发布订阅与数据删除淘汰策略
java·数据库·redis
饼干哥哥27 分钟前
搭建一个云端Skills系统,随时随地记录TikTok爆款
前端·后端
IT 行者34 分钟前
LangChain4j 集成 Redis 向量存储:我踩过的坑和选型建议
java·人工智能·redis·后端
brucelee18634 分钟前
Spring Boot 测试最佳实践
spring boot·后端·log4j
一定要AK37 分钟前
Java流程控制
java·开发语言·笔记
tryCbest1 小时前
Java和Python开发项目部署简介
java·开发语言·python
派星1 小时前
如何分享自己写的 Go 包
后端
huabiangaozhi1 小时前
postgresql链接详解
java
snakeshe10101 小时前
从零理解 Spring 核心:IoC 容器与依赖注入,以及手写一个迷你版
后端
148611 小时前
Redis 删除缓存失败怎么办?重试、死信、补偿的工程化方案
后端