MemberRepositoryTest 클래스가 AbstractTransactionalDataSourceSpringContextTests 클래스를 상속 받았을 때오버라이드 해줘야 하는 메소드가 있습니다.

protected String[] getConfigLocations() 메소드입니다. Configuration 파일들의 경로를 string 배열로 반환합니다. 그리고 MemberRespository 타입의 mr이라는 변수를 Spring의 IOC(Inversion of Control)중에 DI(dependency Injection)을 사용하여 new를 사용하지 않고 XML에서 연결할 수가 있는데 그 중에 setter injection을 사용하려면 setMr() 메소드가 있어야 합니다.

소스보기
[#M_ more.. | less.. |
@Override
   protected String[] getConfigLocations() {
       return new String[] {
               "file:conf/applicationContext-member.xml",
               "file:conf/daoContext.xml",
               "file:conf/daoContext-member.xml", };
   }

   public void setMr(MemberRepository mr) {
       this.mr = mr;
   }
_M#]
applicationContext-member.xml 파일 소스보기
[#M_ more.. | less.. |
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

   <bean id="mr"
       class="net.webapp2.member.service.MemberRepositoryImpl">
       <property name="memberDao" ref="memberDao" />
   </bean>
</beans>
_M#]
daoContext-member.xml 파일 소스보기
[#M_ more.. | less.. |
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

   <bean id="memberDao" class="net.webapp2.member.dao.SqlmapMemberDao">
       <property name="sqlMapClient" ref="sqlMapClient" />
   </bean>
</beans>
_M#]
daoContext.xml 파일 소스보기
[#M_ more.. | less.. |
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

   <!-- DataSource -->
   <!-- MySQL -->
   <bean id="dataSource"
       class="org.apache.commons.dbcp.BasicDataSource"
       destroy-method="close">
       <property name="driverClassName" value="com.mysql.jdbc.Driver" />
       <property name="url" value="jdbc:mysql://localhost:3306/adressbook?autoReconnect=true" />
       <property name="username" value="keesun" />
       <property name="password" value="keesun" />
   </bean>

   <!-- SqlMap setup for iBATIS Database Layer -->
   <bean id="sqlMapClient"
       class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
       <property name="configLocation"
           value="file:conf/sql-map-config.xml" />
       <property name="dataSource" ref="dataSource" />
   </bean>

   <!-- Transaction Manager -->
   <bean id="transactionManager"
       class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       <property name="dataSource" ref="dataSource" />
   </bean>

</beans>
_M#]
그림으로 보면 다음과 같습니다.
1150945885.bmp