스프링 2.5 환경에서 하이버네이트 사용하기

참조 요약: Spring One 2008 Wokring With Hibernate in a Spring 2.5 Environment

스프링의 HibernateTemplate
(Hibernate 3.1 이전)

– 스프링이 관리하는 트랜잭션을 사용한다.
– 예외 번역 제공

public class HibernateClinic extends HibernateDaoSupport {

}

Native Hibernate DAO
(Hibernate 3.1+_

– 트랜잭션 훅(hook)을 제공한다.
– transactional session을 찾는 로직을 제공할 수 있게 한다. sessionFactory.getCurrentSession()
– 예외 번역 제공 @Repository PersistenceExceptionTranslation post processor
– 순수 하이버네이트 API만 사용할 수 있다.

단위 테스트 종류
– “Logical” 단위 테스트
– 통합 테스트

스프링으로 통합 테스트하기
– DI
– 애플리케이션 컨텍스트 로딩 줄이기
– 자동 롤백
– 하이버네이트 + JDBC 조합

AbstractTransactionalDataSourceSpringContextTests
– Ctrl + Shift + T ATDSSCT
– 애플리케이션 컨텍스트 로딩, 캐슁
– DI
– JdbcTemplate 제공

WAR에서 하이버네이트 VS OSGi 개발
– 일반 WAR 배포
  – SessionFactory가 클래스패스에 도메인 타입들을 찾는다.
  – 저장소(DAO, repositoru)들이 SessionFactory를 사용한다.
– OSGi 개발
  – 여러 도메인 번들로 쪼갠다.
  – SessionFactory는 도메인 타입에 접근해야 한다.
  – 저장소는 SessionFactory에 접근해야 한다.

OSGi 환경에서 하이버네이트
– “infrastructure” 번들
  – SessionFactory 서비스를 제공하고
  – 모든 도메인 타입을 가져온다.
– 여러 도메인 모델
  – 도메인 타입을 공개한다.
  – SessionFactory 서비스를 사용한다.
– Petclinic 예제를 제공한다.

=====

발표에서 다루는 내용이 너무 많아서 다소 산만했습니다. 하이버네이트만 집중적으로 다뤘으면 어땠을까 싶더군요. @Repository 얘기가 나오니까 컴포넌트 스캔 얘기로 새고.. 도메인 객체에 repository 객체 주입하는 얘기가 나오니까 @Configurable이랑 aspectj 얘기로 새고.. 테스트 얘기 나오니까 Test Context 쪽으로 또 얘기가 새버렸다가 나중엔 다시 하이버네이트랑 OSGi 얘기 조금 꺼내고 끝~~

멋진건 54분이라는 짧은 발표 시간 중에도 저렇게 많은 내용과 중간 중간 전부 데모까지 보여줬다는 겁니다.

Leave a Reply

Your email address will not be published. Required fields are marked *