MyBatis Mapper Interface 사용관련
- 작성자 :
- 신*균
- 작성일 :
- 2014-04-30 14:33:03
- 조회수 :
- 2,939
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
MyBatis 연동시 Mapper Interface를 적용할떄 전자정부 표준 프레임윅에서 사용하는 방식과 Spring<->MyBatis 연동 모듈에서 사용하는 방식의 차이가 무었인지요?
A)EgovFrame 사용예
@Mapper("employeeMapper")
public interface EmployeeMapper { … }
<!-- MapperConfigurer setup for MyBatis Database Layer -->
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value=" egovframework.rte.**.mapper" />
</bean>
B)Spring<->MyBatis 연동 모듈 사용예
public interface EmployeeMapper { … }
<!-- MyBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<qualifier value="mainDBFactory"/>
<property name="configLocation" value="classpath:com/smartnworks/config/mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations" value="classpath*:com/foo/sqlmap/**/*.xml"/>
</bean>
<!--
<mybatis:scan base-package="com.foo.mapper"/>
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.foo.mapper" />
</bean>
A)EgovFrame 사용예
@Mapper("employeeMapper")
public interface EmployeeMapper { … }
<!-- MapperConfigurer setup for MyBatis Database Layer -->
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value=" egovframework.rte.**.mapper" />
</bean>
B)Spring<->MyBatis 연동 모듈 사용예
public interface EmployeeMapper { … }
<!-- MyBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<qualifier value="mainDBFactory"/>
<property name="configLocation" value="classpath:com/smartnworks/config/mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations" value="classpath*:com/foo/sqlmap/**/*.xml"/>
</bean>
<!--
<mybatis:scan base-package="com.foo.mapper"/>
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.foo.mapper" />
</bean>
A
안녕하세요.
MapperConfigurer와 MapperScannerConfigurer의 기본적인 기능인
Mapper Interface를 스캔하는 것은 동일합니다.
첫번째 차이점은
스프링과 마이바티스(Mapper방식)를 연동하여 함께 사용하기 위해서
Mapper Interface 또한 스프링 컨테이너에서 관리하는 빈으로 등록해주셔야 합니다.
즉 Mapper Interface의 개수만큼 빈등록 과정이 발생합니다.
그러나 표준프레임워크에서 제공하는 MapperConfigurer와 @Mapper를 함께 사용하시면
Mapper Interface 스캔기능과 함께 빈등록 과정을 생략하실 수 있습니다.
두번째 차이점은
MapperScannerConfigurer에서 sqlSessionFactoryBeanName 속성을 사용하시려면,
MapperScannerConfigurer 빈설정 시 property로 해당 속성을 직접 선언해주어야 하지만,
MapperConfigurer를 사용하시면 별도로 선언할 필요가 없습니다.
감사합니다.
MapperConfigurer와 MapperScannerConfigurer의 기본적인 기능인
Mapper Interface를 스캔하는 것은 동일합니다.
첫번째 차이점은
스프링과 마이바티스(Mapper방식)를 연동하여 함께 사용하기 위해서
Mapper Interface 또한 스프링 컨테이너에서 관리하는 빈으로 등록해주셔야 합니다.
즉 Mapper Interface의 개수만큼 빈등록 과정이 발생합니다.
그러나 표준프레임워크에서 제공하는 MapperConfigurer와 @Mapper를 함께 사용하시면
Mapper Interface 스캔기능과 함께 빈등록 과정을 생략하실 수 있습니다.
두번째 차이점은
MapperScannerConfigurer에서 sqlSessionFactoryBeanName 속성을 사용하시려면,
MapperScannerConfigurer 빈설정 시 property로 해당 속성을 직접 선언해주어야 하지만,
MapperConfigurer를 사용하시면 별도로 선언할 필요가 없습니다.
감사합니다.