String AOP

1.面向切面编程
面向切面编程(Aspect Oriented Programming,AOP)是软件编程思想发展到一定阶段的产物,是对面向对象编程的有益补充。AOP一般适用于具有横切逻辑的场合。如访问控制、管理实务、性能检测等。
日志、异常处理、事务控制等,都是一个健壮的业务系统所必须的。但为了保证系统健壮可用,就要在众多的业务方法中反复编写类似的代码,使原本就很复杂的业务处理代码变得更加复杂。业务功能的开发者还需要关注这些“额外” 的代码是否处理正确。如果需要修改日志信息的格式或者安全验证的规则,或者再增加新的辅助功能,都会导致业务频繁而大量的修改。
在业务系统中,总有一些散落、渗透到系统各处且不得不处理的事情,这些穿插在既定业务中的操作就是所谓的“横切逻辑”,也成为切面。我们怎么才能不受这些附加要求的干扰,专心于真正的业务逻辑呢们很容易想到可以将这些重复性的代码抽取出来,放在专门的类和方法中,这样就便于管理和维护了。但即便如此,依然无法实现既定业务和横切逻辑的彻底解耦合,因为业务代码中还要保留这些方法的调用代码,当需要增加或者减少横切逻辑的时候,还是得修改业务方法中的调用代码才能实现。我们希望无需编写显式的调用,在需要的时候,系统能够“自动”调用所需的功能,这正是AOP要解决的主要问题。
面向切面编程,简单地说就是在不改变原程序的基础上为代码段增加新的功能,对代码段进行增强处理。它的设计思想来源于代理设计模式,这里就不详细介绍了。
面向切面编程的一些基本概念:
1.切面:一个模块化的横切逻辑(或称横切关注点),可能会横切多个对象。
2.连接点:程序执行中的某个具体的执行点。
3.增强处理:切面在某个特定连接点上执行的代码逻辑。
4.切入点:对连接点的特征进行描述,可以使用正则表达式。增强处理和一个切入点表达式相关联,并在与这个切入点匹配的某个连接点上运行。
5.目标对象:被一个或多个切面增强的对象。
6.AOP代理:由AOP框架所创建的对象,实现执行增强处理方法等功能。
7.织入:将增强处理连接到应用程序中的类型或对象上的过程。
8.增强处理类型:在对象之前插入的增强处理为前置增强,该方法正常执行完以后插入的增强处理为后置增强,此外还有环绕增强、异常抛出增强、最终增强等类型。
2.实际操作
接下来我们来实现几个增强处理类型。
1.前置增强
在这之前我们需要在原有jar包的基础上新导入一个jar包,如图所示

String AOP
接着创建一个增强类Advice
String AOP
编写测试类,其中的try方法同样是为了满足后置异常处理
String AOP

来源:浊风叙酒

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年8月22日
下一篇 2018年8月22日

相关推荐