DB에 접근할 수 있도록 자바에서 제공하는 API
JAVA 추상화의 대표적인 예. 어떤 DB서버든 같은 메소드로 접근한다.
환경의 변화와 관계 없이 일관된 방식의 기술로 접근하는 추상화 구조이다.
(객체지향설계5원칙 중 OCP에 해당)
Spring JDBC 접근 방법 중 하나로 plain JDBC에서 수행하는 반복적인 저수준 작업을 내부적으로 처리한다. 개발자는 connection 연결, 종료와 같은 세부적인 작업을 spring에 위임한다.
Spring JDBC를 사용하기 위해서는 DataSource를 필요로 한다.
Connection Pool을 관리하는 목적으로 사용되는 객체
데이터 베이스에 접근할 때마다 connection을 맺고 끊어주는 작업을 줄이기 위해 connection을 생성해 두고 데이터베이스에 접근할 때 미리 생성해둔 connection을 제공하고 돌려 받는다. 이 connection을 모두아두는 장소를 Connection Pool이라고 하며 java에서 이를 설정, 관리하는 인터페이스가 Datasource이다.
Datasource는 빈으로 등록되어 인자로 넘겨준다
스프링 부트에서는 버전마다 default로 제공하는 Datasource가 다르다.