dev2dev.bea.com.cn
首页 资源中心 dev2dev学堂 在线技术论坛 专家Blog User Group CodeShare

SPRINGONE:PITCHFORK项目 -- EJB 3在WLS中流行

2006-07-24 00:00:00 | 评论 (0) | 被访问(590)次

Jon Mountjoy
  Jon Mountjoy 是dev2dev的编辑。他喜欢XML和J2EE技术,并且是“WebLogic: The Definitive Guide”的作者之一。他维护两个关于dev2dev的blog: 一个关于dev2dev的每周编辑blog和一个更个性化的blog。


  一份关于我参加的SpringOne大会的迟到的报告(在Emacs缓冲区中找到的):Rod Johnson (Interface21)和Michael Chen (BEA)主持的Spring in the Core of WebLogic。这是我参加的关于Pitchfork项目的第一个演示会,以下是我的感受。

  我认为可从两个角度看这个项目:

  • 它能为WebLogic Server用户做什么
  • 它能潜在地为所有用户(无论他们是否使用WLS)做什么

WLS用户

  对于WebLogic Server用户来说,Pitchfork项目代表的似乎是对WebLogic Server 9中的EJB 3实现的增强。事实上,您可以去下载包含此功能的WebLogic Server技术预览。那么它能为您做什么呢?它允许您使用Spring功能扩展EJB3(如果您想这样做的话)。我想您可将此视为“供应商扩展”——只不过这里的供应商扩展是开源的,而“扩展”是Spring 2.0功能。所以情况是这样的:

  在EJB 3中,您可以拥有类似如下所示的东西:

 

@Stateless(name="Trader")
public class TraderBean implements Trader {
  @Interceptor(ConvertCompanyToSymbol.class)
  public String sell (String stockSymbol, ...) {
  ...
}

  它是无状态EJB,有一个应用于某一方法的拦截器。拦截器基本上是在客户端(以透明方式)实际调用sell()之前被执行的。演讲者的基本观点是,虽然EJB 3非常好,但是它缺少某些特性:

  • 依赖注入非常有限。它限定于特定类型,没有列表/地图等,并且仅注入JNDI中的内容。
  • 拦截模型也非常有限。它是一个有缺陷的AOP解决方案(我的观点)。因此,您找不到简介、切入点模型、模块化方面等等,它是攻击性的。

  一个论点是“EJB 3是2003年的DI和AOP”——我认为很难否认这一点……

  所以,Pitchfork有点像是开源的“WebLogic Server”,它提供了EJB 3的BEA扩展,从而解决了上述问题(同时增加了更多问题)。新的WebLogic Server实际上集成了Spring 2.0,并对您的EJB 3施了些魔法,以允许您混合和匹配Spring bean和EJB 3 bean,并利用其他Spring功能(例如AOP)。因此,您能够拥有完整的Spring依赖注入,以及完整的AOP。您可以做的其他事情包括:EJB能够与Spring bean交互,反之亦然;每个EJB都是一个Spring bean;EJB将自动从Spring容器回调中获益;能够使用模块Spring方面等。

所有用户

  这对于不使用WebLogic Server的其他用户来说意味着什么?我认为意义在于,它为应用服务器外的无状态会话bean和消息驱动bean等提供了“一个容器”。这在什么地方有用呢?一件使我震惊的事正在测试中。我原以为现在可以简单的仅使用Spring测试整个无状态会话bean,而无需应用服务器。很明显,一些诸如事务和安全性之类的东西仍然留在了容器中(或任何您从Spring得到的东西)。

讽刺之事

  Rod表达了这种情况的讽刺性。一些Spring是从它们在(pre 3) EJB上的失败中诞生的。现在,为了处理Pitchfork内容,您需要使用一个可爱的名称在新的描述符文件中声明一些事: /META-INF/spring-ejb-jar.xml



Tags: project pitchfork ejb container spring Open Source
文章评论:(以下网友留言只代表个人观点,不代表BEA观点和立场)
暂时没有评论!

2006年07月

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
RSS订阅

Jon Mountjoy's Blog搜索