论文写作网论文写作网

论文写作网电话
论文写作网免费咨询电话
18132681470

定义了一个theTracingBe论文毕业?? foreAdvice 的通知和一个切入点

毕业论文库:计算机 时间:2016-12-27 点击:

  ?? ?? 通过下面一个例子来说明Spring AOP 的详细实现。系统需求是要跟踪在一个业务逻辑( IBusiness??
  < value> . / IBusinessLogic/ . foo< / value>
  通知: 在特定的毗连点AOP 框架执行的行动。
  public static void main( String [ ] args) {/ / 读取设置文件
  IBusinessLogic testObject = ( IBusinessLogic ) ctx . getBean (?
  lApplicationContext;
  成立一个TracingBeforeAdvice 类来实现Spring 框架的MethodBeforeAdvice 接口, 此接口只有一个before 要领需要实现, 从而到达通知的实现。在Spring 框架中MethodBeforeAdvice是在一个毗连点之前执行的通知。
  方面是AOP 的焦点, 就是把对一个大概横切差异的多个工具的存眷点模块化, 这些模块化单位就叫?? 方面 。通过分别?? 方面 代码, 横切存眷点变得容易处理惩罚。开拓者可以在编译时变动、插入或撤除系统的?? 方面 , 甚至重用系统的?? 方面 。
  别的, 当往系统中插手新的模块时, 已有的方面自动横切进来, 使系统易于扩展。
  AOP 界说了如下的语言布局和语义, 这些术语不是Spring 框架所特有的。
  系统容易扩展: 由于方面模块基础不知道横切存眷点, 所以很容易通过成立新的方面插手新的成果。
  第三步: 方面的从头织入, 成立一个MainApplication 类, 来挪用业务逻辑处理惩罚的foo( ) 要领时, 此应用在运行时将织入跟踪要领。
  < property name= ?proxyInterfaces?>
  此刻系统有一个需求要跟踪foo ( ) 要领的执行。在要领foo( ) 执行前提示。对付此横切存眷点的详细代码实现如下:
     摘要: 先容了面向方面编程( Aspect??Oriented??Programming, AOP) 的思想、开拓步和谐利益, 而且给出了一个基于Spring 框架的详细AOP 的实现。
  3 ?? 一个基于Spring 框架的AOP 的具
  Advice?/ >
  cussing aspects of AOP [ J] . Communications of the ACM,2001, 44( 10) : 33??38.
  < ref local= ?theTracingBeforeAdvice?/ >
  nesslogicbean?) 要领, 获得BusinessLogic 类的实例, 从而消除了MainApplication 与businesslogicbean 之间的耦合。设置文件springconfig. xml 代码如下:
  要害词: 面向方面编程; AOP; Spring 框架; IOC1 ?? AOP 技能简介
  参考文献:
  }
  public class BusinessLog ic implements IBusinessLogic{public void foo( ) {
  ( 1) 方面解析: 解析需求提取识别横切存眷点和一般存眷点。在这一步里, 把焦点模块级存眷点和系统级的横切存眷点分分开来。
  < bean id= ?theTracingBeforeAdvisor?
  class= ?org.springframework. aop. framework. ProxyFactoryBean?>
  < property name= ?pattern?>
  public void foo( ) ;
  AOP 包罗三个清晰的开拓步调[ 2]
  [ 1] ?? Elrad T, Aksit M, Kiczales G, Lieberherr K, Ossher H. Dis??
  foreAdvice 的通知和一个切入点。切入点的正则表达式为<value> . / IBusinessLogic/ . foo< / value> , 说明选择IBusinessLog??
  < beans>
  / / 初始化工具
  当应用措施挪用IBusinessLogic 的foo( ) 要领之前将织入TracingBeforeAdvice 的before 要领, 从而到达了跟踪foo ( ) 要领的目标。运行进程如图2 所示。
  < list>
  毗连点: 措施执行进程中明晰的点, 如要领的挪用或特定的异常被抛出。
  MainApplication 类通过IOC( Inversion of Control) 也称赖性打针( Dependency Injection ) 的模式来装载和打点BusinessLogic 类的实例。详细做法就是先通过读取设置文件springconfig . xml实例化ApplicationContext 工具ctx, 然后挪用ctx . getBean(?busi??
  模块化横切存眷点: AOP 用最小的耦合处理惩罚每个存眷点, 使得纵然是横切存眷点也是模块化的。这样的实现发生的系统, 其代码的冗余小。模块化的实现还使得系统容易领略和维护。
  < property name= ?interceptorNames?>
  vice{
  < ref local= ?beanTarget?/ >
  Logic) 处理惩罚中foo( ) 要领的挪用环境。
  }
  < / property>
  PointcutAdvisor?>
  第二步: 存眷点的实现, 对付业务处理惩罚逻辑, 代码实现如下:
  ?? ?? < / bean>
  }
  图1?? AOP 的开拓进程
  < / bean>
  点的荟萃。AOP 框架答允开拓者指定切入点: 譬喻,利用正则表达式。
  ic 接口的foo( ) 要领为切入点。在springconfig. xml 文件最后一个bean 声明是指定了一个类来实现通知。
  , 并可以或许自动地将这些横切存眷点织入到面向工具的软件系统中, 从而实现了横切存眷点的模块化。
  < ! - - Bean 类- - >
  pectJ 的编译时织入, Spring 是在运行时完成织入的。
  < value> IBusinessLogic< / value>
  < bean id = ? theTracingBeforeAdvice? class = ?TracingBefore??
  < / property>
  class = ? org. springframework. aop. support. RegexpMethod??
  [ 2] ?? Ramnivas Laddad. Separate Software Concerns with Aspect??ori??
  ( 2) 存眷点实现: 各自独立地实现这些存眷点。
  < / property>
  Spring 框架是一个开源的项目, 正做为一种轻量级框架获得越来越遍及的重视和利用。Spring AOP是Spring 框架中的一个重要组件, 作为一种非侵略性的, 轻型的AOP 框架, 开拓者无需利用预编译器或其他的元标签, 便可以在Java 措施中利用它。
  < ! - 设置Bean - - >
  脚色分另外问题。借助于面向工具的阐明、设计和实现技能, 开拓者可以将问题规模的?? 名词 转换成软件系统中的工具, 从而很自然地完成从问题到软件的转换。可是在详细的应用进程中, 经常会呈现这种环境, 一个需求会贯串许多脚色。譬喻在一个系统中经常存在着这样一些民众的需求: 日志、安详性、异常捕获等, 这些成果贯串整个系统的多个模块, 我们将这种行为称为?? 横切存眷点 。因为这些横切存眷点超过了编程模子中的典范职责权限, 利用传统的技能开拓, 这些横切存眷点的实现漫衍在各个模块中, 存在着代码分手和代码杂乱的问题, 使得整个系统难以设计、领略、实现和改造。
  Spring 框架自己也在成长中, 在最新的测试中, 和其他AOP 框架对比Spring 在一些常用坚守上的机能表示更为突出。可是AOP 作为一种新的编程思想还没有完全成熟, 还需要实践来不绝地摸索和完善。
  public void before(Method method, Object[ ] objects, Object o)throws Throwable{
  < ! - 通知类- - >
  2 ?? Spring AOP 先容
  方面: 一个存眷点的模块化, 这个存眷点实现大概别的横切多个工具。Spring 利用术语一个工具的advisor 来暗示一个方面, 包括一个通知和一个指定特定毗连点的切入点。
  < / property>
  import org. springframework. context. ApplicationContext;import org. springframework. context. support. FileSystemXm??
  businesslogicbean?) ;
  AOP 署理: 一个用AOP 框架缔造出来的工具, 包罗通知。在Spring 中, 一个AOP 署理是个jdk 的动态署理可能是CGLIB 署理。
  体实现
  切入点: 指定一个通知将被激发的一系列毗连
  System. out. println(?Hello world! ( by? + this. getClass( ) . get??
  < / property>
  在springconfig . xml 文件中, proxyInterfaces 是指此proxyFac??
  方针工具: 包括毗连点的工具。
  Name( ) + ?)?) ;
  testObject. foo( ) ;
  toryBean 返回的范例, target 指的是被切的bean, interceptorNames是指利用到的拦截机, 把theTracingBeforeAdvisor 预先界说到声明的businesslogicbean 中, 声明advisor, 界说了一个theTracingBe??
  ented Programming [ DB/ OL] . http: / / www. javaworld. com/javaworld/ jw??01??2002/ jw??0118??aspect. html, 2002??01??01.
  ApplicationContext ctx = new FileSystemXmlApplicationContext( ?springconfig. xml?) ;
  < ! DOCTYPE beans PUBLIC ???/ / SPRING/ / DTD BEAN/ /EN? ?http: / / www. springframework. org/ dtd/ spring??beans. dtd?>
  / / 详细实现
  < value> theTracingBeforeAdvisor< / value>
  图2 ?? 措施运行的顺序图
  更好的代码重用性: AOP 把每个方面实现为独立的模块, 每个存眷点的实现都不知道其它存眷点是否会?? 存眷 它, 模块之间是松散耦合的, 松散耦合的实现凡是意味着更好的代码重用性, AOP 在使系统实现松散耦合这一点上比OOP 做得更好。
  import java. lang. reflect.Method;
  < ? xml version= ?1. 0? encoding= ?UTF??8?? >
  }
  }
  < bean id= ?businesslogicbean?
  < property name= ?advice?>
  }
  , 如图1 所示。
  ( 3) 方面的从头组合: 在这一步里, 方面集成器通过必然法则把已经实现的各自存眷点组合起来, 重组进程! ! ! 也叫织入或整合! ! ! 从而构建最终系统。
  近几年来AOP 作为一新技能获得迅速成长,
  public interface IBusinessLogic{
  }
  < ! - - Advisor 的通知切入点的界说- - >
  4 ?? 竣事语
  织入: 组装方面建设通知化工具。差异于As??
  / / 执行bean 的foo( ) 要领
  Spring AOP 的一些观念:

  AOP( Aspect??Oriented??Programming ) 面向方面编程是由Gregor Kiczales 在1997 年提出的一个全新的编程技能, 为开拓者提供了一种描写横切存眷点的机制[ 1]
  < bean id= ?beanTarget? class= ?BusinessLog ic?/ >
  AOP 的利益[ 2] : AOP 可辅佐我们办理上面提到的代码杂乱和代码分手所带来的问题, 它尚有一些此外利益。
  Spring 提供了一个用尺度Java 语言编写的AOP框架, Spring 实现AOP 的途径差异其他大部门AOP框架。它的方针不是提供极其完善的AOP 实现, 而是提供一个和Spring IOC 细密整合的AOP 实现, 辅佐办理企业应用中的常见问题。因此, Spring AOP 的成果凡是是和Spring IOC 容器连系利用的。
  < / list>
  public classMainApplication{
  第一步: 方面解析, 业务逻辑处理惩罚和要领跟踪, 前者为一般存眷点, 后者为横切存眷点。
  传统的面向工具技能很好地办理了软件系统中
  import org. springframework. aop. MethodBeforeAdvice;public class TracingBeforeAdvice implements MethodBeforeAd??
  < property name= ?target?>
  < / beans>
上一篇: 通过将接报的各种安论文毕业全事件分析、对比、联系
下一篇: 朱淼良.基于J2EE 的数据访问技论文毕业术设计模式研究[J]. 计算机工程与应用

| 计算机推荐

更多
定义了一个theTracingBe论文毕业?? foreAdvice 的通知和一个切入点-计算机: 定义了一个theTracingBe论文毕业?? foreAdvice 的通知和一个切入点文章链接:/lunwen/jisuanji/15546.html

| 论文创作推荐资讯

更多 毕业论文推荐资讯