MyBatis를 Spring과 함께 사용할 경우, 기본 설정만으로도 대부분의 상황에 충분히 대응할 수 있습니다. 별도의 세부 설정이 필요한 경우를 제외하고는 디폴트 설정을 활용하는 편이 일반적입니다.

 

Spring에서는 MyBatis 설정을 자동으로 처리해주는 부분이 많기 때문에, SqlSessionFactoryBeanmapper 위치 정도만 지정한 뒤 사용하는 경우가 잦습니다. 예를 들어, Spring의 기본 설정 파일을 아래와 같이 작성한 뒤, 매퍼 파일들을 resources/mapper 혹은 resources/mybatis와 같은 디렉토리에 배치할 수 있습니다. 여기서는 mapper 폴더 아래에 mybatis-config.xml을 두는 예시를 들어보겠습니다.

 

예시 설정 (mapper-config.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context 
                           http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- SqlSessionFactoryBean 설정 -->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- MyBatis 기본 설정 파일 경로 지정 -->
        <property name="configLocation" value="classpath:/mapper/mybatis-config.xml"/>
        <!-- 매퍼 XML 파일 위치 지정 -->
        <property name="mapperLocations" value="classpath*:/mapper/**/*_SQL.xml"/>
    </bean>

    <!-- SqlSessionTemplate 설정 -->
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSession"/>
    </bean>

    <!-- 매퍼 인터페이스 자동 스캐닝 설정 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="매퍼 인터페이스들이 위치한 패키지 경로"/>
    </bean>

</beans>

 

위 설정을 통해 Spring은 mybatis-config.xml을 기본 설정으로 사용하고, 해당 설정을 기반으로 매퍼 XML 파일(*_SQL.xml)들을 자동으로 로딩합니다. 또한, MapperScannerConfigurer를 이용해 매퍼 인터페이스를 빈으로 등록하므로, @Autowired 등을 통해 손쉽게 매퍼를 주입받아 사용할 수 있습니다.

mybatis-config.xml 예시

아래는 classpath:/mapper 디렉토리 하위에 mybatis-config.xml을 두고, 추가적인 설정(예: 타입 핸들러 등록)을 하는 예시입니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context 
                           http://www.springframework.org/schema/context/spring-context.xsd">

    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:/mapper/mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath*:/mapper/**/*_SQL.xml"/>
    </bean>

    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSession"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="매퍼 인터페이스 패키지"/>
    </bean>

    <!-- 타입 핸들러 등록 예시 -->
    <typeHandlers>
        <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
    </typeHandlers>

</beans>

위와 같이 설정을 완료하면 Spring과 MyBatis를 연동하는 과정이 간소화되며, 기본 설정과 자동화된 매퍼 스캔 기능을 통해 빠르고 간편한 개발 환경을 구축할 수 있습니다.

+ Recent posts