如果您考虑将 Spring 或 Hibernate 与 IBM® WebSphere® Application Server 一起使用,则本文向您阐述了如何配置这些框架,以适用于 WebSphere Application Server 的各种场景。本文不是对任一框架的详尽评论,而是帮助您成功实现此类场景的重要参考(针对 Spring Framework 2.1 更新)。
引言
Spring Framework(通常称为 Spring)是一种开源项目,目的是为了使 J2EE™ 环境更具可访问性。Spring 为简单 Java™ 对象提供框架,使这些对象可以通过包装类和 XML 配置使用 J2EE 容器。Spring 的目标是为这些项目提供显著的好处,提高这些项目的开发效率和运行时性能,同时改进测试覆盖率和应用程序质量。
Hibernate 是开放源代码持久性和查询框架,提供 POJO(传统 Java 对象)到关系数据库表的与对象相关的映射,以及数据查询和检索功能。
尽管许多组织感兴趣的是了解使用这些框架能够获得什么好处,但 IBM 希望让使用这些框架的客户知道,他们可以通过 WebSphere Application Server 以强健和可靠的方式做到这一点。本文介绍这些框架如何能够与 WebSphere Application Server 一起使用,并介绍针对各种用例的最佳实践,以帮助您尽快地使用 Spring 或 Hibernate。
使用 Spring
通常将 Spring 描述为轻量级容器环境,但是将其描述为用于简化开发的框架可能更适当。Spring Framework 由 Interface21 根据 Rod Johnson 发表的关于依赖项注入设计模型开发。Spring 可以在独立应用程序或应用服务器中使用。其主要概念是使用依赖项注入和面向方面的编程来简化和平稳地进行从开发到测试再到生产的转换。
涉及 Spring 的最常用的场景之一是使用简单的 Java Bean 类配置并驱动业务逻辑。 Spring 文档应提供了使用 Spring Bean 构建应用程序的足够信息,其中没有提供任何特定于 WebSphere 的内容。以下部分将描述 Spring 在 WebSphere Application Server 上的一些使用场景。根据本文的建议开发的 Spring 应用程序应能够轻松地在 WebSphere Application Server 或 WebSphere Application Server Network Deployment 环境中执行。
除明确指出以外,本文提供的信息适用于所有平台上的 WebSphere Application Server 版本 6.0.2.x 和 6.1.x。
表示层注意事项
本部分介绍的注意事项与在基于 Web 的表示层中使用 Spring 相关。
Web MVC 框架
Spring 的 Web MVC 框架在某一时间内一直是其他框架的备选框架。直接由 WebSphere Application Server 提交、使用和支持的 Web MVC 框架包括 JavaServer Faces (JSF) 和 Struts。Spring 文档描述了如何将 Spring 与这些 Web 框架集成。尽管 WebSphere Application Server 支持使用上面的任何 MVC,但 IBM 仅为 WebSphere Application Server 附带的框架提供产品支持。
Portlet MVC 框架
Spring 还提供了一个 Portlet MVC 框架(该框架镜像 Spring Web MVC 框架),而且在 WebSphere Portal V6.0 和 WebSphere Application Server V6.1 Portlet 容器中运行。有关 Spring Portlet 的示例集,请参见Spring Portlet MVC。在 WebSphere Application Server V6.1 Portlet 容器中运行 Portlet 需要创建其他 Web 应用程序才能定义 Portlet 的布局和聚合。从 WebSphere Application Server 信息中心和文章 Portlet 容器介绍 中可以获得关于如何使用 Portlet 聚合器标记库的信息。通常的做法是结合使用 JSF 和 Portlet 进行呈现。关于如何将 Spring、Hibernate、JSF 和 WebSphere Portal 组合起来的信息,请参见 Configuring Hibernate, Spring, Portlets, and OpenInSessionViewFilter with IBM WebSphere Portal。
数据访问注意事项
本部分介绍的注意事项与访问事务数据的 Spring Bean 配置相关。
Spring Framework 实际上使用一个容器管理层(在 J2EE 环境中委派给基础 J2EE 运行时)包装 Spring Bean。下面将介绍应如何配置 Spring Bean,以便 Spring Framework 可以正确委派到 WebSphere Application Server 运行时并与其集成。
访问 WebSphere Application Server 中配置的数据源
WebSphere Application Server 管理在应用服务器执行环境中使用的资源。需要访问 JDBC 数据源之类资源的 Spring 应用程序应该利用 WebSphere 管理的资源。要完成此任务,请执行以下步骤:
在开发过程中,应该使用资源引用配置 WAR 模块。例如:
<resource-ref>
<res-ref-name>jdbc/springdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
|
对于 EJB JAR 文件,应该在需要访问数据源的每个 EJB 中声明同一资源引用。
然后在 Spring 应用程序配置中声明数据源代理 Bean,代理 Bean 引用 WebSphere 管理的资源提供程序:
<bean id="WASDataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="java:comp/env/jdbc/springdb"/>
<property name="lookupOnStartup"
value="false"/>
<property name="cache"
value="true"/>
<property name="proxyInterface"
value="javax.sql.DataSource"/>
</bean>
|
通过此代理 Bean 访问数据源将会使用模块配置的引用查看数据源,因此能够由 WebSphere Application Server 正确管理。注意,jndiName 属性值匹配与资源引用中声明的资源引用名称连接的模式 java:comp/env/。
然后,Spring 应用程序可以在适当情况下使用数据源代理 Bean。
将应用程序部署到 WebSphere Application Server 时,必须以常规方式配置资源提供程序和资源数据源,以便由 Spring 应用程序资源引用使用。在部署过程中,在模块的部署描述符中声明的资源引用将绑定到应用服务器的配置数据源。
使用 JDBC 本机连接
当各种 JDBC 操作需要与本机 JDBC 资源交互时,Spring 可提供访问本机连接的机制。当在 JdbcTemplate 类上设置了 NativeJdbcExtractor 类时,Spring JdbcTemplate 类才可以利用此功能。设置 NativeJdbcExtractor 类后,当与 WebSphere Application Server 一起使用时,Spring 总是向下找到本机 JDBC 连接。这将忽略以下 WebSphere 服务质量功能和优点:
o 连接处理跟踪和再关联
o 连接共享
o 参与事务
o 连接池管理
这带来的另一个问题是 WebSphereNativeJdbcExtractor 类将依赖于内部 WebSphere 适配器类。这些内部类可能因 WebSphere Application Server 的版本而异,并且以后可能更改,从而中断依赖于此功能的应用程序。
在 WebSphere Application Server 上不支持使用 NativeJdbcExtractor 类实现(例如 WebSphereNativeJdbcExtractor),您应避免需要它的场景。备选方案是使用 WebSphere Application Server WSCallHelper 类来访问非标准供应商的数据源扩展。
分享到:
相关推荐
### Hibernate延迟加载以及利用Spring #### 一、Hibernate延迟加载概念与原理 ...综上所述,通过合理的配置和编码实践,可以在Spring框架下有效地使用Hibernate的延迟加载功能,从而优化应用性能并减少内存消耗。
这里将以Eclipse搭建Maven工程集成Spring4生成的项目为基础,集成Hibernate5.0.7final。 亲可以参考: 1、Maven安装以及在eclipse中的配置 2、Eclipse中使用Maven创建基本的web项目 3、Maven的Web工程集成Spring4 1...
本文将深入探讨几种解决Flex与Hibernate延迟加载问题的方法,并着重讲解使用Gilead的方案。 1. **LCDS的Hibernate Adapter**:Adobe LiveCycle Data Services (LCDS) 提供了一个Hibernate适配器,可以处理延迟加载...
1. **依赖注入(Dependency Injection, DI)**:Spring 2.0.6强化了依赖注入机制,使得对象之间的依赖关系由Spring容器管理,而不是由代码硬编码。这增强了代码的可测试性和可维护性。 2. **AOP(面向切面编程)**:...
解决方案:检查hibernate.cfg.xml文件中的dialect属性,确保其与使用的数据库类型相匹配,例如MySQL应设置为`<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>`。同时,确认项目...
下面我们将深入探讨Hibernate事务的原理、配置以及在实际开发中的应用。 一、Hibernate事务基础 1. 事务四大特性(ACID) - 原子性(Atomicity):事务中的所有操作要么全部成功,要么全部失败。 - 一致性...
1. Core Spring Chapter 1. Springing into action 1.1. Simplifying Java development 1.1.1. Unleashing the power of POJOs 1.1.2. Injecting dependencies 1.1.3. Applying aspects 1.1.4. Eliminating ...
项目使用了spring-hibernate集成,但是报如下错的话: The project was not built since its build path is incomplete. Cannot find the class file for org.springframework.dao.support 这时有可能是还缺少一个...
错误原因:在Hibernate中,当你试图将一个对象属性映射为集合,比如一个用户有多个角色,通常会使用标签来定义。如果在前端页面尝试显示这些角色作为下拉选择时,可能由于集合未正确加载或配置不完整,导致下拉框...
1. **依赖注入(Dependency Injection, DI)**:这是Spring的核心特性之一,允许开发者将对象的创建和组合解耦,从而降低了组件之间的耦合度。通过XML配置或注解方式实现,DI使得组件之间可以松散地连接,提高了代码...
mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...
(4)集成的框架有:spring mvc + spring + hibernate + logback + junit,spring mvc、hibernate已经用注解配置方式替代 了传统的xml配置方式。 (5)logback在本项目中已经设置了一个aop切面,对所有的controller请求...
本文将深入探讨Rapid-Framework与Hibernate、Spring和SpringMVC的整合过程及其优势。 **一、Rapid-Framework简介** Rapid-Framework 是一个综合性的开发框架,它以Spring为核心,集成了ORM框架Hibernate,以及用于...
WAS可以与多种技术栈集成,如Spring、Hibernate、MQ、DB2等。了解这些集成技术,可以构建更复杂的企业级解决方案。 10. **最佳实践** 通过阅读博客文章(如提供的链接),了解社区中分享的WAS使用经验,学习最佳...
综上所述,“picword”项目似乎是一个基于Java的技术栈构建的应用,涵盖了后端服务(如WAS、Resin)、数据库(SQL、Hibernate)、前端脚本(JavaScript)、操作系统(Linux)以及开发框架(Spring)。开发者可能通过...
下面,我们将深入探讨在ssh2使用过程中可能遇到的一些典型错误,并提供相应的解决方案。 ### 错误一:Expected positional parameter count: 3, actual parameters: [[1,1,0]] 这种错误通常发生在调用函数或方法时...
例如,在WebSphere 6.1上部署基于SSH2(Spring + Struts2 + Hibernate)和JPA2的应用程序时,由于WebSphere 6.1使用的是IBM JDK 1.5,且内置的一些jar包版本较老,这可能导致与SSH2架构中的新版本jar包存在不兼容的...
以下将详细阐述在WebSphere 6.1环境下,如何配置MyEclipse 6.0.0.M1以实现Struts2+Spring2+Hibernate3的集成。 首先,安装WebSphere 6.1,确保使用的是was.cd.6100.trial.base.windows.ia32.zip版本,这是IBM官方...