22-Spring源码解析之AOP(1)——@EnableAspectJAutoProxy注解原理
Spring版本: <version>5.2.1.RELEASE</version> 目录 一、`AOP`概览 1. 例子 1.1 创建用于拦截的`Bean` 1.2 切面类 1.3 配置类 1.4 测试类 1.5 测试结果 二、 `@EnableAspectJAutoProxy`注解 三、解析`@EnableAspectJAutoProxy`注解 上一篇: 21-Spring源码解析——IOC容器创建与Bean生命周期总结 截至到本篇文章,我终于把 IOC 写完啦!现在开启 Spring 的第二个百宝箱: AOP 一、 AOP 概览 我们知道,使用 面向对象编程( OOP ) 有一些弊端,当需要为多个不具有继承关系的对象引入同一个公共行为的时候,例如:日志、安全检测等,我们只有在每个对象里引用公共行为,这样程序中就产生了大量的重复代码,程序就不便于维护了,所以就有了一个对面向对象编程的补充,即 面向切面编程( AOP ) , AOP 所关注的方向是横向的,不同于 OOP 的纵向。 Spring 2.0 采用 @AspectJ 注解对 POJO 进行标注,从而定义了包含 切点信息 和 增强横切逻辑 的切面。 Spring 2.0 将这个切面织入到匹配的目标 Bean 中。 下面,我们先来直观地浏览一下 Spring 中 AOP 的简单示例。 1. 例子 我们这个例子比较纯粹