1.Spring

1.SpringAOP的原理了解吗

Spring AOP 的核心在于 —— 动态代理(Dynamic Proxy)。 ​✅ 在不修改原有业务逻辑的前提下,为代码统一地增强功能 它主要有两种实现方式:

代理方式底层机制特点
JDK 动态代理基于 Java 自带的 Proxy只对实现了接口的类生效
CGLIB 代理基于字节码继承(生成子类)可代理普通类(无接口)

Spring 会自动判断用哪种:

  • 如果类实现了接口 → 用 JDK 动态代理
  • 否则 → 用 CGLIB 代理

代理对象 → 调用切面逻辑 → 再调用真实方法 → 返回结果

2.SpringAOP的核心概念

名称含义
切面(Aspect)封装横切逻辑的类(比如日志、缓存、事务)
连接点(Join Point)可以被拦截的方法(Spring 默认是方法级)
切入点(Pointcut)定义要拦截哪些方法
通知(Advice)在方法执行前、后、抛异常时执行的代码
目标对象(Target Object)被代理的原始对象
织入(Weaving)将切面逻辑与目标对象“编织”在一起的过程
代理对象(Proxy Object)增强后的对象,Spring 返回的实际上是它

3.有哪些基于AOP的注解

功能框架注解说明
事务管理@Transactional方法执行前后自动提交/回滚事务
缓存管理@Cacheable, @CacheEvict自动缓存/清理
日志记录自定义切面打印请求参数、执行时间
权限控制@PreAuthorize方法调用前检查权限