커넥션을 얻는 방법에서는 다양한 방법 들이 존재한다.
만약 1번 방법으로 어플리케이션을 사용하다가, 2번 방법으로 교체하고 싶다면 어떻게 해야할까?
서로 의존관계(HikariCP vs Driver Manager)도 다를 뿐더러, 사용방법도 조금씩 상이하기때문에, 코드변경이 불가피 하다.
이러한 문제를 해결하기 위해 등장한 아이디어, 또는 인터페이스가 바로 javax.sql.DataSource 이다.
DataSource의 핵심은 커넥션 조회 기능을 추상화 한 인터페이스 라는 것이다.
public interface DataSource {
Connection getConnection() throws SQLException;
}
DBCP2
,HikariCP
) 들을 DataSource 인터페이스를 구현해놨다. 그렇기 때문에 해당 구현 기술을 변경하고 싶으면 구현체만 갈아 끼우면 된다.DriverManagerDataSource
라는 DataSource를 구현한 객체를 제공한다.