DataSource
spring과 MyBatis를 같이 사용하는 경우 주로 스프링의 설정으로 JDBC연결을 처리
->Spring-jdbc 모듈의 클래스를 이용해서 root-context.xml에 DataSource 추가
DataSource: JDBC의 커넥션 처리 기능
(MySQL과의 연동을 담당)
| <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/book_ex?useSSL=false"></property> <property name="username" value="zerock"></property> <property name="password" value="zerock"></property> </bean> | |
spring-jdbc모듈의 DriverManagerDataSource클래스를 이용
bean id
객체 빈을 찾기 위해서 사용하는 가명
id를 이용해서 다른 객체와 연결
spring-text모듈을 이용, WAS상에서 동작시키지 않고도 동작 확인 가능
DataSource 테스트 진행
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | japackage org.zerock.web; import java.sql.Connection; import javax.inject.Inject; import javax.sql.DataSource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations= {"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"}) public class DataSourceTest { @Inject private DataSource ds; @Test public void testConntion() throws Exception{ try (Connection con=ds.getConnection()){ System.out.println(con); }catch(Exception e) { e.printStackTrace(); } } } | |
@RunWith,
@ContextConfiguration
테스트 코드를 실행할 때 스프링이 로딩되도록 하는 부분
@ContextConfiguration의 locations속성 경로의 xml파일을 이용해서 스프링 로딩
@Inject
@Inject 애노테이션 처리된 DataSource는 스프링이 생성해서 주입해주므로 객체 생성하지 않아도 됨
@ContextConfiguration에서 설정한 root-context.xml파일 참조하여 객체 주입
테스트 코드 진행 결과
댓글