기존에 DB connection을 만들어주기 위하여, 직접 DB-specific한 DriverManager로부터 DB connection을 가져왔으나, 실제로 java에서는 DB connection을 가져오는 기능과 여러가지 부가적인 기능을 추상화한 DataSource interface가 존재한다.
/** * <p>Attempts to establish a connection with the data source that * this {@code DataSource} object represents. * * @return a connection to the data source * @exception SQLException if a database access error occurs * @throws java.sql.SQLTimeoutException when the driver has determined that the * timeout value specified by the {@code setLoginTimeout} method * has been exceeded and has at least tried to cancel the * current database connection attempt */ Connection getConnection()throws SQLException;
spring 이 제공해주는 DataSource interface를 구현한 구체 class 중에서 test환경에서 간단히 사용할 수 있는 SimpleDriverDataSource를 사용하여, Dao Class를 refactorying 하였다.
위에는 annotation 기반의 java코드로 spring bean으로 등록할 설정파일을 작성하였는데, 우리가 이전에 배운 xml 로 spring bean 을 등록해볼 수도 있다. 주의할점은 DataSource 인터페이스의 경우 이전에 setter 주입을 해줄때, 다른 bean object의 참조값을 넘겨주는게 아니라, text를 적어주므로, ref attribute가 아닌 value attribute를 사용한다.