로우 레벨 기술인 JDBC는 커넥션을 획득하는 방법이 커넥션 풀과 다르다. 커넥션 획득 방법이 달라진다면 애플리케이션 코드를 수정해야 한다.
이런 문제를 해결하기 위해 javax.sql.DataSource 라는 커넥션 획득 방법을 추상화한 인터페이스를 제공한다.
public interface DataSource {
Connection getConnection throws SQLException;
}
애플리케이션 코드에서 커넥션을 획득할 때 DataSource를 의존하면 되고 커넥션 획득 방법이 달라지면 해당 구현체를 DI 받아 사용하면 된다.