데이터 액세스 및 Spring Framework
Spring Bean이 데이터 소스에 액세스하려면 Spring Framework가 WebSphere® Application Server 런타임을 올바르게 위임하고 이와 통합될 수 있도록 해당 Bean을 구성해야 합니다.
Spring Framework는 Spring Bean을 엔터프라이즈 애플리케이션 환경에서 기본 엔터프라이즈 애플리케이션 런타임으로 위임하는 컨테이너 관리 계층으로 랩핑합니다. 다음 절은 데이터 소스에 액세스하는 Spring Bean을 구성할 때 고려할 사항에 대해 설명합니다.
애플리케이션 서버에서 구성되는 데이터 소스에 액세스
Spring 애플리케이션이 JDBC(Java™ Database Connectivity) 데이터 소스와 같은 자원에 액세스하려면 애플리케이션은 애플리케이션 서버가 사용하는 자원 제공자를 사용해야 합니다.
그러기 위해서는 Spring 애플리케이션 데이터 소스에 대한 액세스 구성 주제를 참조하십시오.
JDBC 기본 연결
WebSphere Application Server는 Spring Framework가 제공하는 NativeJdbcExtractor 클래스의 사용을 지원하지 않으므로 이 클래스를 사용하는 시나리오는 피하십시오. 이 클래스를 구현하면 기본 JDBC 연결에 액세스하고 애플리케이션 서버에서 연결 핸들 추적 및 재연관, 연결 공유, 연결 풀 관리, 트랜잭션 관여 등과 같은 서비스 기능 품질을 생략할 수 있습니다.
또는 애플리케이션 서버 WSCallHelper 클래스를 사용하여 데이터 소스의 비표준 공급업체 확장기능에 액세스할 수도 있습니다.
Java Persistence API
WebSphere Application Server에는 두 개의 JPA 제공자가 포함되는데, 하나는 JPA 2.1을 위한 EclipseLinks를 기반으로 하고, 하나는 JPA 2.0의 Apache OpenJPA 구현을 기반으로 합니다. 자세한 정보는 관련 링크를 참조하십시오.
Spring Framework를 JPA 구현과 함께 사용하려면 org.springframework.orm.jpa 패키지에서 Spring Framework와 함께 제공되는 JPA 헬퍼 클래스를 사용하는 것보다는 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" ID에서 사용할 수
있습니다. <jee:jndi-lookup id="entityManagerFactory" jndi-name="some/ref_name" />