首页 > 学院 > 开发设计 > 正文

AOP

2019-11-14 08:45:48
字体:
来源:转载
供稿:网友
1、什么是AOP?aspect Oritented PRogramming 的简称,面向切面编程。   AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。比如我们最常见的就是日志记录了,举个例子,我们现在提供一个查询学生信息的服务,但是我们希望记录有谁进行了这个查询。如果按照传统的OOP的实现的话,那我们实现了一个查询学生信息的服务接口(StudentInfoService)和其实现 类 (StudentInfoServiceImpl.java),同时为了要进行记录的话,那我们在实现类(StudentInfoServiceImpl.java)中要添加其实现记录的过程。   假如我们要实现的服务有多个呢?那就要在每个实现的类都添加这些记录过程。这样做就会有点繁琐,而且每个实现类都与记录服务日志的行为紧耦合,违反了面向对象的规则。那么怎样才能把记录服务的行为与业务处理过程中分离出来呢?看起来好像就是查询学生的服务自己在进行,但却是背后日志记录对这些行为进行记录,并且查询学生的服务不知道存在这些记录过程,这就是我们要讨论AOP的目的所在。2、为什么要使用AOP?(1)解耦(2)重复利用代码(3)便于装卸3、AOP的优缺点?优点:(1)切面的定义放在xml里面,我们可以灵活的配置(2)易于测试(3)易于装卸缺点:(1)创建对象的流程麻烦了(2)由于spring大部分采用反射机制来实现,因此性能一定是个问题(3)由于对象的定义放在xml,对于使用eclipse来重构就会比较麻烦
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表