数据访问和 Spring Framework
为使 Spring Bean 能够访问数据源,您必须配置这些 Bean,以便 Spring Framework 委派给 WebSphere® Application Server 运行时并与该运行时正确集成。
Spring Framework 将 Spring bean 与容器管理层进行打包,以便在企业应用程序环境中将这些 bean 委托给底层的企业应用程序运行时。下列各节描述了配置用于访问数据源的 Spring Bean 时要考虑的事项。
访问应用程序服务器中配置的数据源
为了 Spring 应用程序能够访问诸如 Java™ 数据库连接 (JDBC) 数据源之类的资源,该应用程序必须使用由应用程序服务器管理的资源提供程序。
为此,请参阅配置 Spring 应用程序数据源的访问主题。
JDBC 本机连接
WebSphere Application Server 不支持使用 Spring Framework 提供的 NativeJdbcExtractor 类,所以请避免采用使用此类的方案。此类的实现将访问本机 JDBC 连接,并且会绕过应用程序服务器中的服务质量功能,如跟踪连接句柄和使连接句柄重新关联、共享连接、管理连接池和事务包含。
作为替代方法,您可以使用应用程序服务器 WSCallHelper 类来访问数据源的非标准供应商扩展。
Java Persistence API
WebSphere Application Server 包括两个 JPA 提供程序;一个基于 EclipseLinks for JPA 2.1,另一个基于 JPA 2.0 的 Apache OpenJPA 实现。有关更多信息,请参阅相关链接。
要将 Spring Framework 与 JPA 实现配合使用,最好是直接使用 JPA,而不是使用 org.springframework.orm.jpa 包中随 Spring Framework 一起提供的 JPA 辅助类。
<persistence-context-ref>
<persistence-context-ref-name>some/name</persistence-context-ref-name>
<persistence-unit-name>pu_name</persistence-unit-name>
</persistence-context-ref>
其中,pu_name 是 persistence.xml 文件中定义的持久性单元的名称。<jee:jndi-lookup id="entityManager" jndi-name="some/name" />
<persistence-unit-ref>
<persistence-unit-ref-name>some/ref_name</persistence-unit-ref-name>
<persistence-unit-name>pu_name</persistence-unit-name>
</persistence-unit-ref>
生成的 EntityManagerFactory 对象可在 “entityManagerFactory” 标识下获得:<jee:jndi-lookup id="entityManagerFactory" jndi-name="some/ref_name" />