Spring框架汇总(Spring AOP——理论基础)
一、Spring AOP是什么?
AOP(Aspect-Oriented Programming),被译为“面向切面编程”,是通过预编译的方式或运行时动态代理方法(详见:《Spring框架汇总(理论篇——代理模式)》)实现业务中的扩展功能。AOP与OOP两种编程思想共同帮助开发者管理对象之间的数据结构(详见:《Spring框架汇总(理论篇——基础理论)》),因此常有人说AOP是OOP思想的一种扩充。
Spring整合AspectJ框架,底层使用动态代理的方式帮助开发者简化了面向切面编程。Spring AOP是Spring框架的核心功能模块之一。
二、Spring AOP的应用场景
与代理模式一样,Spring AOP基于OCP原则,在不改变原有功能代码的基础上扩展新的功能,并且实现业务代码解耦,提高代码的可重用性,以简化代码编写,提高开发效率。Spring AOP广泛应用于处理一些具有横切性质(贯穿于)的系统级服务,如系统日志处理,事务处理,安全验证,数据缓存等。例如登录和权限验证:
三、Spring AOP中术语解释
名称 | 作用 |
---|---|
切面(Aspect) | 横切面对象,一般为一个具体类对象,其中定义了一个或多个通知 |
通知(Advice) | 在切面的某个特定连接点上执行的动作,即具体要执行扩展业务方法 |
切入点(Pointcut) | 定义应该对于那些核心业务(原业务)进行扩展 |
连接点(Joinpoint) | 被扩展业务修饰的原业务,即被切面和切点拦截到的具体方法 |
引入(Introduction) | 引入允许我们向现有的类添加新方法或属性 |
织入(Weaving) | 织入是把切面应用到目标对象并创建新代理对象的过程 |