Note ≣ | DriverManagerDataSource 구현체
이 구현체는 스프링 IoC 컨테이너에서 DataSource 빈이나 간단한 JNDI(Java Naming and Directory Interface) 환경과 결합해서 사용해도 유용합니다. 또한 Java EE 컨테이너 외부의 단독적인 환경이나 테스트 환경에서도 유용합니다.
커넥션 풀을 지원하지 않으므로 웹에서 데이터베이스로 쿼리를 보내 데이터베이스와 연결하는 여러 요청이 있을 때는 성능이 저하될 수 있으므로 오로지 테스트용으로만 사용하기 권장합니다.
Note ≣ | 커넥션 풀을 지원하는 DataSource를 설정하는 방식
앞서 DriverManagerDataSource 구현체는 커넥션 풀을 지원하지 않아 웹에서 데이터베이스로 쿼리를 보내 데이터베이스와 연결하기 때문에 여러 요청이 있을 때는 성능이 저하될 수 있다고 설명했습니다. 그럼 커넥션 풀을 지원하는 데이터 소스 설정 방식을 알아봅니다.
스프링의 JDBC 계층을 사용하는 경우 JNDI에서 DataSource를 얻거나 커넥션 풀링 구현체로 DataSource를 설정할 수 있습니다. 또한 많이 사용하는 구현체로 Apache Jakarta Commons DBCP와 C3P0을 설정할 수 있습니다.
• 커넥션 풀을 이용하여 DataSource 설정하기
스프링에서는 직접적으로 커넥션 풀 구현 클래스를 제공하지 않지만, DBCP(Jakarta Commons DataBase Connection Pool) API를 이용하여 커넥션 풀 기반의 DataSource를 설정할 수 있습니다.