快速业务通道

将Spring和Hibernate与WebSphere Application Server一起使用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
设计过程中,必须认真考虑部署到 WebSphere Application Server 中的应用程序中的 Spring Framework 使用, 以避免降低 WebSphere Application Server 提供的任何服务质量。如果没有任 何其他建议,首选的方法是直接使用 WebSphere Application Server 提供的服 务,以便基于开放标准开发应用程序,并确保未来部署的灵活性。

非托管线程

某些 Spring 场景可能导致创建非托管的线程。非托管线程对 WebSphere Application Server 是未知的,并且不能访问 Java EE 上下文信息。此外,它 们可以在 WebSphere Application Server 不知道的情况下利用资源,在管理员 无法控制其数量和资源使用的情况下存在,在发生故障时,它们还阻止应用程序 服务器正常关闭或恢复资源。应用程序应该避免导致启动非托管线程的任何场景 ,如:

registerShutdownHook

避免使用 Spring AbstractApplicationContext 或其子类之一。 registerShutdownHook 是一个公共方法,它可以创建线程并将其注册到 Java 虚拟机,以便在关机时运行以关闭 ApplicationContext。应用程序可以避免这 一点,方法是利用从 WebSphere 容器接收的常规生命周期通知来显式调用 ApplicationContext 上的关闭。

WeakReferenceMonitor

Spring 为简化开发 EJB 组件提供了方便的类,但是请注意,这些方便的类 会生成由 WeakReferenceMonitor 用来执行清除操作的非托管线程。

调度

Spring 提供(或集成)了大量的调度包,但是,只有与 WebSphere Application Server 托管的线程一起使用的 Spring 调度包才是 CommonJ WorkManager。其他包(如 quartz 和 JDK Timer)会启动非托管线程,应该避 免使用。

使用 Hibernate

Hibernate 是用于 POJO 的开放源代码持久性框架,它通过 XML 配置文件提 供 POJO 到关系数据库表的对象-关系映射。Hibernate 框架是应用程序调用来 实现数据持久性的数据访问抽象层。此外,Hibernate 还提供了从 Java 类到数 据库表(以及从 Java 数据类型到 SQL 数据类型)的映射,以及数据查询和检 索功能。Hibernate 生成必需的 SQL 调用,还负责结果集处理和对象转换。

Hibernate(如 OpenJPA)实现了 Java Persistence API (JPA) 规范,此规 范是 Java EE 5 的必备组成部分。(有关如何使用 Hibernate 的 developerWorks 文章,请参见参考资料。)

将Spring和Hibernate与WebSphere Application Server一起使用(11)

时间:2011-06-10 IBM Roland Barcia

使用场景

以下场景描述了有关如何将 Hibernate 与 WebSphere Application Server 和 WebSphere 产品堆栈结合使用的一些可能场景。这些仅是示例场景,不应认 为是推荐的场景。

使用 WebSphere Application Server 数据源

为了让 Hibernate 从 WebSphere Application Server 获取数据库连接,必 须使用 Java EE(以前称为 J2EE)规范中强制规定的资源引用。这可以确保 WebSphere Application Server 能够为连接池、事务语义和隔离级别提供正确 的行为。通过将 hibernate.connection.datasource 属性(在 Hibernate 配置 文件中进行了定义)设置为引用在模块的部署描述符中定义的资源引用(例如 java:comp/env/jdbc/myDSRef),将 Hibernate 配置为从 WebSphere Application Server 检索数据源。例如:

<property name="hibernate.connection.datasource">    java:/comp/env/jdbc/myDSRef </property>

Web 应用程序的 Java EE 资源引用在 WAR 文件级别定义,这意味着容器中 的所有 Servlet 和 Java 类均共享资源引用。在 EJB 模块内部,资源引用在各 个 EJB 组件上定义。这意味着,如果许多 EJB 组件都使用相同的 Hibernate 配置,则每个 EJB 必须在每个 EJB 组件上定义相同

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号