Sun 的 GlassFish 拥抱 Spring

工程 | Rod Johnson | 2007 年 2 月 16 日 | ...

Sun 现在非常重视开源,而用户似乎也开始认真对待 Sun 的开源项目。

GlassFish 在开源应用服务器领域起步较晚,但似乎正在获得关注。更重要的是,它实际上看起来相当不错。包括 Costin 和 Juergen 在内的几位 Interface21 成员已经研究了 GlassFish,并给予了好评(尽管我们尚未在生产中使用它)。据我所知,性能非常出色——这可能很大程度上归功于基于 NIO 的重新设计的 servlet 引擎。JPA 实现——TopLink Essentials——也应该表现良好,因为它基于成熟且高性能的 TopLink 引擎。

还有 GlassFish 被真正采用的证据:例如,著名的澳大利亚酒店预订服务 Wotif.com。 从我最近的澳大利亚之旅来看,Wotif 就像 eBay 和 lastminute.com 一样,是普通人(而不仅仅是技术人员)会谈论的网站之一。

当然,Wotif.com 也在使用 Spring。我认为 Sun 在企业 Java 领域变得更加重要的部分原因是,他们现在更了解更广阔的世界正在发生的事情,并且愿意听取意见并采取行动。

因此,Sun 一直在朝着为 GlassFish 提供 Spring 支持的方向发展,尤其是在 Web 服务堆栈中。这特别有趣,因为 GlassFish 的 Web 服务部分(自然而然地)是 RI。

GlassFish 开发人员 Kohsuke Kawaguchi 最近在博客中谈到了 JAX-WS 堆栈中的 Spring 支持。这特别酷,因为它通过提供 Spring 2.0 命名空间处理程序来实现。请注意 JAX-WS 命名空间与核心 Spring beans 命名空间的使用,允许 Spring bean 定义与 JAX 特定配置混合使用。


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:ws= "http://jax-ws.dev.java.net/spring/core"
       xmlns:wss="http://jax-ws.dev.java.net/spring/servlet" ...>

  <wss:bindings id="jax-ws.http">
    <wss:bindings>
      <wss:binding url="/stockQuote">
        <wss:service><!-- nested bean is of course fine -->
          <ws:service impl="foo.MyService">
            <ws:handlers>
              <ref bean="myHandler" />
            </ws:handlers>
          </ws:service>
        </wss:service>
      </wss:binding>
    </wss:bindings>
  </wss:bindings>

  <bean id="myHandler" class="foo.MyHandler" />
</beans>

这与 Spring remoting 的方式相反,remoting 技术基本上调用 Spring,而不是 Spring *导出*服务,但它的集成度同样高,并且易于使用。据推测,也可以导入其他 Spring 配置文件以利用现有的 bean 定义。

Kohsuke 补充了一个有趣的想法:

由于 Spring 支持是开放式的,因此可以使用它来启用其他 JAX-WS 扩展。例如,我们可以使用它来配置 JMS 传输,或配置 JSON 编码等。
现在,Web 服务端点可以直接连接到 Spring 提供的所有内容:所有配置功能、声明式服务和企业集成……

有关 JAX-WS RI 的 Spring 集成的文档请参见此处

Spring 支持似乎在 GlassFish 社区中得到了 良好反响。 也很想听听 Spring 社区的意见。 您希望在 GlassFish 中有哪些集成功能? WebLogic 中迄今为止发布的一些集成功能可能是一个不错的起点,例如增强的事务管理和 JMX/控制台集成。

当然,我们已经在 Spring 2.0 中使用 JPA 和 TopLink Essentials 做了大量工作,TopLink Essentials 是 GlassFish 中的 JPA RI 和持久性引擎。 EJB 3.0 的联合负责人、核心 TopLink 开发人员和通用 ORM 大师 Mike Keith 提供了很多帮助,我们发现整个 TopLink 团队的反应非常迅速。

获取 Spring 新闻通讯

随时了解 Spring 新闻通讯

订阅

抢占先机

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部