Spring AOP是面试高频,下面将从Spring AOP原理,覆盖核心概念、底层实现、执行流程、代理选择逻辑,不啰嗦但足够深入。
Spring AOP 是基于动态代理的切面编程框架,用于在不修改业务代码的前提下,对方法进行增强(如日志、事务、权限)。
核心思想:将横切逻辑(如日志)从业务逻辑中抽离
在运行期通过代理对象自动织入增强逻辑
Spring AOP 底层依赖 动态代理,有两种方式:
源码逻辑(DefaultAopProxyFactory):
proxyTargetClass=true → 一律 CGLIBSpring AOP 的执行流程可以分为 3 大阶段:解析(启动时)→ 创建代理(Bean初始化时) → 调用(运行时)
Spring 启动时会扫描所有 @Aspect 类:
@Pointcut 切点表达式@Before/@After 等注解解析为 Advisor(切点 + 通知)Spring 使用 BeanPostProcessor 在 Bean 初始化后:
当你调用代理对象的方法时:
InvocationHandler.invoke()(JDK)或 MethodInterceptor.intercept()(CGLIB)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。