

커넥션 획득
DriverManager 사용커넥션 풀 사용
DriverManager로 커넥션 획득하다가, 커넥션 풀을 사용하는 방법으로 변경한다면?

문제 발생
DriverManager 사용하여 커넥션 획득하다가 HikariCP 같은 커넥션 풀을 사용하도록 변경DriverManger에서 HikariCP로 변경되기 때문
문제 해결
javax.sql.DataSource 인터페이스 제공DataSource는 커넥션을 획득하는 방법을 추상화하는 인터페이스DataSource
DataSource 인터페이스를 이미 구현함DBCP2 커넥션 풀, HikariCP 커넥션 풀의 코드에 직접 의존하는 것이 아니라 DataSource 인터페이스에만 의존하도록 애플리케이션 로직을 작성하면 됨DriverManager는 DataSource 인터페이스를 사용하지 않음DriverManager은 직접 사용해야 함DriveerManager를 사용하다가 DataSource 기반의 커넥션 풀을 사용하도록 변경하면 관련 코드를 모두 고쳐야 함DriverManager도 DataSource를 통해서 사용할 수 있도록 DriverManagerDataSource라는 DataSource를 구현한 클래스를 제공DataSource를 통해 커넥션을 획득하는 방법을 추상화 함DataSource 인터페이스에만 의존하면 됨DriverManagerDataSource를 통해 DriverManger를 사용하다가 커넥션 풀을 사용하도록 코드를 변경해도 애플리케이션 로직은 변경하지 않아도 됨