AOP的定义和原理

1、本课目标

  • 理解Spring AOP的原理
  • 掌握Spring AOP的七个术语

2、面向切面编程(AOP)

 AOP的思想是,不去动原来的代码,而是基于原来代码产生代理对象,经过代理的方法,去包装原来的方法,就完成了对之前方法的加强。换句话说,AOP的底层原理就是动态代理的实现。
 
image.png

在上面这个图中的代码中,业务代码就红框中的那些,其余的代码都是作一些其余的事情,可是这些代码还不得不写,而且这些代码散布在咱们系统的各处。咱们把这样的的代码叫作横切逻辑,也叫横切关注点;把咱们的业务代码叫作核心关注点。可是咱们构建系统的目的是为了解决业务问题,如今却要维护多个方面的事情,怎么样才能“专心”作事情?这就是AOP的目标:让咱们“专心作事”。编程

2.1AOP原理

第1、将复杂的需求分解出不一样的方面,将公共功能集中解决。

 
image.png

 

在上图中,中间的是咱们的代码,AOP就是将这些分离,包括权限,日志和持久化等等。spa

第2、采用代理机制组装起来运行,在不改变原程序的基础上对代码段进行加强处理,增长新的功能

 
image.png

综上、所谓面向切面编程,是一种经过预编译方式和运行期动态代理实如今不修改源代码的状况下给程序动态添加功能的技术。代理

2.2AOP相关术语

一、加强处理:前置加强、后置加强、环绕加强、异常抛出加强、最终加强等类型
二、切入点
三、链接点
四、切面
五、目标对象
六、AOP代理
七、织入日志

一、加强处理

 
image.png

二、切入点

经过一个表达式告诉SpringAOP去哪一个地方进行加强。也能够把这个表达式理解为一个查询条件,系统会根据这个查询条件查询到咱们要进行加强的代码位置。orm

三、链接点

就是SpringAOP经过告诉它的切入点的位置找的的具体的要加强的代码的位置,这个代码位置就是链接点。对象

四、切面

切面由一组(加强处理和切入点)共同构成。io

五、目标对象

目标对象就是被加强的目标类。咱们也称之为委托类。编译

六、AOP代理

 
image.png

 

代理类就是AOP代理,里面包含了目标对象以及一些加强处理。系统会用AOP代理类代替委托类去执行功能。form

七、织入

织入就是将咱们的加强处理加强到指定位置的过程。class

相关文章
相关标签/搜索