面向切面编程AOP的浅显理解(二)
2017-07-30 21:46
316 查看
第一篇主要有个大致的了解,这一篇主要介绍一些AOP常见的概念以及理解。AOP作为面向切面的编程,我们首先会想到的是切面,那到底切面是如何定义的呢?
1.切面(Aspect):
切面就是Aspect,所谓切面就是Java中对横切关注点(cross cutting concerns)的抽象,设置横切关注点(cross
cutting concerns)是提供很多高级拓展功能的基础。咋一看引出来了一个横切关注点这个概念,让人摸不着头脑,其实简单的可以这样理解,横切关注点就是一些非核心业务代码,它分布在核心业务代码的多个点位处,而各处基本相似,比如权限认证、日志、事物。学过几何的都了解过,点连成线,线连成面,可以理解为当很多的横切关注点连在一起就可以抽象成切面。
2.横切关注点(cross cutting concerns):
横切关注点的基本概念上面也简单介绍了,作为非核心业务代码,与之相对应的是核心关注点,即核心业务代码,核心业务代码是我们在逻辑处理流程中非常关注的。横切业务点和核心关注点交叉出现,就构成了功能完备的代码。
3.切点(point cut):
切点这个概念可以理解为横切的点,定义了在业务逻辑代码块的那个地方进行切割,我们通常使用明确的类的方法名称来指定这些切点。有切割的点那么就会有相应的连接点,这样才可以把代码给连接起来。
4.连接点(join point):
连接点是在核心业务代码中能够插入切面的一个点,它的存在于切点的前方,后方等地方,通俗的理解可以认为是连接点就是把这些切口给缝合起来,连接起来的点。那么用什么连接的呢?就是通知(advice)
5.通知(advice):
所谓通知,就是可以简单地理解为在连接点被拦截后要执行的代码,即连接切点的代码,通知分为前置、后置、异常、最终、环绕通知五类。before,after,throwing,return,around。
针对上述五个概念可以用一张图来简单介绍下:下图可以看出来,通知可以理解为连接点处所用到的材料。
总结:AOP的基本概念不止这五个,但是这五个是常用到的概念,可以把面向切面编程看成一种剪切写满核心业务逻辑的代码纸张,然后把这些代码通过连接点填充通知给连接起来。这样既实现了业务逻辑代码,也实现了一些拓展功能。
1.切面(Aspect):
切面就是Aspect,所谓切面就是Java中对横切关注点(cross cutting concerns)的抽象,设置横切关注点(cross
cutting concerns)是提供很多高级拓展功能的基础。咋一看引出来了一个横切关注点这个概念,让人摸不着头脑,其实简单的可以这样理解,横切关注点就是一些非核心业务代码,它分布在核心业务代码的多个点位处,而各处基本相似,比如权限认证、日志、事物。学过几何的都了解过,点连成线,线连成面,可以理解为当很多的横切关注点连在一起就可以抽象成切面。
2.横切关注点(cross cutting concerns):
横切关注点的基本概念上面也简单介绍了,作为非核心业务代码,与之相对应的是核心关注点,即核心业务代码,核心业务代码是我们在逻辑处理流程中非常关注的。横切业务点和核心关注点交叉出现,就构成了功能完备的代码。
3.切点(point cut):
切点这个概念可以理解为横切的点,定义了在业务逻辑代码块的那个地方进行切割,我们通常使用明确的类的方法名称来指定这些切点。有切割的点那么就会有相应的连接点,这样才可以把代码给连接起来。
4.连接点(join point):
连接点是在核心业务代码中能够插入切面的一个点,它的存在于切点的前方,后方等地方,通俗的理解可以认为是连接点就是把这些切口给缝合起来,连接起来的点。那么用什么连接的呢?就是通知(advice)
5.通知(advice):
所谓通知,就是可以简单地理解为在连接点被拦截后要执行的代码,即连接切点的代码,通知分为前置、后置、异常、最终、环绕通知五类。before,after,throwing,return,around。
针对上述五个概念可以用一张图来简单介绍下:下图可以看出来,通知可以理解为连接点处所用到的材料。
总结:AOP的基本概念不止这五个,但是这五个是常用到的概念,可以把面向切面编程看成一种剪切写满核心业务逻辑的代码纸张,然后把这些代码通过连接点填充通知给连接起来。这样既实现了业务逻辑代码,也实现了一些拓展功能。
相关文章推荐
- 面向切面编程AOP的浅显理解(一)
- 面向切面编程AOP的浅显理解(三)
- 面向切面编程AOP的浅显理解(一)
- 深入理解面向切面的编程AOP、AspectJ、Spring
- Spring面向切面编程AOP的个人理解
- Aop_面向切面编程_思想理解资料01
- Aop_面向切面编程_思想理解资料03 . .
- Aop_面向切面编程_思想理解资料02 .
- CGLIB实现AOP代理的测试类,与Spring分离,加深对面向切面编程的理解
- 结合Java实例代码来理解 AOP--面向切面编程 中的各个术语
- 转:面向切面编程AOP的理解
- AOP面向切面编程思想的原理(简单理解)
- 深入理解js--面向切面编程 AOP
- Java实现AOP面向切面编程的实例教程
- SpringBoot中使用AOP面向切面编程
- 从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存
- 【spring-boot】spring aop 面向切面编程初接触--切点表达式
- Struts2拦截器原理(拦截器设计体现的一种编程理念——面向切面编程AOP)
- iOS的AOP(面向切面)编程--Aspects
- AOP面向切面编程在Android中的使用