커넥션 획득
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
를 사용하다가 커넥션 풀을 사용하도록 코드를 변경해도 애플리케이션 로직은 변경하지 않아도 됨