本文分享自华为云社区《Spring高手之路20——深入理解@EnableAspectJAutoProxy的力量》,作者: 砖业洋__。
面向切面编程(
AOP
)是一种编程范式,用于增强软件模块化,通过将横切关注点(如事务管理、安全等)分离出业务逻辑。
Spring AOP
是
Spring
框架中实现
AOP
的一种方式,它通过代理机制在运行时向对象动态地添加增强。
AspectJ
是一种更强大的
AOP
实现,它通过编译时和加载时织入,提供了比
Spring AOP
更丰富的增强选项。本文将探索如何通过
Spring AOP
进行简单的
AOP
配置和实现。
后续源码分析就用这个前置通知的代码调试
初探@EnableAspectJAutoProxy
上面代码中,
AppConfig
配置类里有个
@EnableAspectJAutoProxy
注解,前面说过,
@EnableAspectJAutoProxy
注解告诉
Spring
框架去寻找带有
@Aspect
注解的类,
Spring AOP
通过读取
@EnableAspectJAutoProxy
注解的属性来配置代理的行为。
下面用时序图来展示通过
@EnableAspectJAutoProxy
注解启用面向切面编程(
AOP
)的过程。
解读:
1、启动ApplicationContext:
应用 (
App
) 向
ApplicationContext
发送消息以启动
Spring
的应用上下文。这是
Spring
应用的初始化阶段,负责设置
Spring
的核心功能,包括
Bean
的加载和管理。