반응형

MyBatis Spring 기본 설정 가이드

1. SqlSessionFactory 설정

SqlSessionFactory는 MyBatis의 핵심 컴포넌트로, 데이터베이스 연결과 SQL 실행을 관리합니다.

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="mapperLocations" value="classpath:/mapper/**/*.xml" />
    <!-- 선택적 설정 추가 -->
    <property name="configLocation" value="classpath:/mybatis-config.xml" />
    <property name="typeAliasesPackage" value="your.package.domain" />
</bean>

주요 속성 설명:

  • dataSource: 데이터베이스 연결 정보를 담고 있는 빈을 참조합니다
  • mapperLocations: SQL 매퍼 파일들의 위치를 지정합니다
  • configLocation: MyBatis 설정 파일의 위치를 지정합니다
  • typeAliasesPackage: 도메인 객체들의 패키지를 지정하여 별칭을 자동으로 생성합니다

2. SqlSessionTemplate 설정

SqlSessionTemplate은 MyBatis의 SqlSession을 스프링과 연동하기 위한 핵심 클래스입니다. 스레드 안전하며 트랜잭션 관리를 자동으로 처리합니다.

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

3. 매퍼 스캐닝 설정

매퍼 인터페이스를 자동으로 스캔하고 빈으로 등록하기 위한 설정입니다.

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="your.package.mapper" />
    <!-- 선택적 설정 추가 -->
    <property name="annotationClass" value="org.springframework.stereotype.Repository" />
    <property name="sqlSessionFactoryBeanName" value="sqlSession" />
</bean>

주요 속성 설명:

  • basePackage: 매퍼 인터페이스들이 위치한 패키지를 지정합니다
  • annotationClass: 스캔할 매퍼 인터페이스에 필요한 애노테이션을 지정합니다
  • sqlSessionFactoryBeanName: 사용할 SqlSessionFactory 빈의 이름을 지정합니다

4. Java Configuration 방식

XML 대신 Java Config를 사용할 경우의 예시입니다:

@Configuration
public class MyBatisConfig {

    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
            .getResources("classpath:/mapper/**/*.xml"));
        return sessionFactory.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

@Configuration
@MapperScan(basePackages = "your.package.mapper")
public class MapperConfig {
    // 매퍼 스캐닝 설정
}

이러한 설정을 통해 MyBatis는 스프링과 완벽하게 통합되어 동작하며, 데이터베이스 작업을 효율적으로 처리할 수 있습니다.

 

 

참고:

  1. http://www.mybatis.org/spring/ko/mappers.html
반응형

'Java > Spring Framework' 카테고리의 다른 글

스프링 프레임워크 마이그레이션 3.2.9 to 4.3.5  (0) 2016.12.22
Spring 한글설정  (0) 2015.03.19
Spring AOP  (0) 2015.01.19
스프링 스터디 - 의존성 주입 대상  (0) 2015.01.14
스프링 학습 개발 도구 설치  (0) 2015.01.13

+ Recent posts