자원을 관리하는 코드가 보통 사방에 흩어져 있게 됩니다. 하지만 스프링에서는 이런 자원 관리간단하면서도 강력한 방법인 tamplate을 사용한 IoC를 이용해서 관리합니다. 자원을 관리하는 기능과 SQLException을 보다 구체적이고 un-checked Exception인 DataAccessException으로 래핑해줍니다.

HibernateTemplate, HibernateInterceptor, HibernateTransactionManager 이런 클래스들을 제공하는 가장 주요한 목적
1. 어플리케이션에서 Data Access와 Transaction 기술을 깔끔하게 레이어링
2. 어플리케이션 객체들 간의 Loose Coupling

따라서...
1. no more business service dependencies on the data access or transaction strategy
2. no more hard-coded resource lookups
3. no more hard-to-replace singletons
4. no more custom service registries.