当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

<b>Spring事件处理及其AOP框架的本相</b>[Java编程]

赞助商链接



  本文“<b>Spring事件处理及其AOP框架的本相</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Spring框架中成功吸惹人的一点就是容器事件的管理,供应了一个轻量级的容器事件处理,针对的对象是普通的java类,利用Spring事件管理的话,你可以按照自己的业务把一些相关的办法归入其事件管理里面,这就避免了程序员在处理事件的历程中烦琐的工作.同时这些也是ejb2.X标准里面吸惹人的一点,这在spring里面都很好的供应.固然在跨容器的事件管理,spring里面并没有供应,但是关于普通的web程序来说,也不需求仅仅为了那些功效而不得不利用ejb.不过,近来jboss的嵌入式的ejb容器也可以做的更小了,也是开源中的挑选之一.无论技术是怎样发展的,当前,我们先来研究此中AOP实现的办法.

事实上,Spring中的事件处理是通过AOP思惟来实现的,Spring AOP与Aspect J和JBoss具有很大的差别,首先,利用Spring AOP框架的用户要记着的一点是,Spring AOP针对的是办法层次上的实现,而其他二者对字段也供应了支持.说到Spring AOP的底细,其实也不难,关于有接口的类,利用的是Java内部类供应的Proxy;而关于那些不实现接口的类,利用的是cglib库,动态成立一个子类来实现.

在Spring AOP中供应了4种处理切入范例:around,before,after,introduction.

1)around是针对具体的某个切入点的办法(比方,目前有个OrderBook办法,around的切入范例是就这个办法的内部调用,是通过java的元数据,在运行时通过Method.invoke来调用,具有返回值,当发生不测的时刻会终止.记着的一点是,返回值.);

2)before是在办法调用前调用(在OrderBook办法前调用,但是没有返回值,同时在普通不测情形下,会持续运行下一步办法.记着的一点是没有返回值);

3)after和before刚好相反,没有什么分外的地方.

4)introduction是一个越发特别的,但功效愈加强盛的切入范例.比方(你目前有Book对象,Computer对象,还有几十个这种业务对象,目前你但愿在每个这样的对象中都加入一个记录最后改正的时间.但是你又不但愿对每个类都举行改正,因为太麻烦了,同时更重要的一点,破坏了对象的完好性,说不定你今后又不需求这个时间数据了呢...这时怎么办呢?Spring AOP就为你专门实现这种思惟供应了一个切入处理,那就是introduction.introduction可认为你动态加入某些办法,这样可以在运行时,强迫转换这些对象,举行插入时间数据的行动,更深的底细就是C++虚函数中的vtable思惟).不过这种动态是以性能作为代价的,利用之前要慎重考虑,这里我们谈的是技术,所以就认为他是必须的.

好,目前我们就拿第四种来举行举例阐明Spring AOP的强盛之处:

1)假定成立了一个BookService接口及其实现办法(你自己的业务对象):

//?$ID:BookService.java Created:2005-11-6 by Kerluse Benn
package com.osiris.springaop;
public interface BookService {
  public String OrderComputerMagazine(String userName,String bookName);
  public String OrderBook(String userName,String bookName);
}
//?$ID:BookServiceImpl.java Created:2005-11-6 by Kerluse Benn
package com.osiris.springaop;
public class BookServiceImpl implements BookService{
  public String OrderBook(String name,String bookName) {
   // TODO Add your codes here
   String result=null;
   result="订购"+bookName+"成功";
   return result;
  }
  public String OrderComputerMagazine(String userName, String bookName) {
   // TODO Add your codes here
   String result=null;
   result="订购"+bookName+"成功";
   return result;
  }
}


  以上是“<b>Spring事件处理及其AOP框架的本相</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .