스프링에서 JPA보다 많이 사용되는 ORM은 mybatis라 할 수 있습니다. 스프링과 MyBatis를 함께 사용할 때, mybatis-config.xml 파일은 MyBatis 설정의 핵심이 되는 파일입니다. 이 파일에서는 데이터베이스 연결 정보, 트랜잭션 관리 방법, SQL 매퍼 파일 위치 등 다양한 설정을 할 수 있습니다.
1. 스프링 설정 파일에 MyBatis 연동 설정 추가하기
<!-- MyBatis 설정 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">: MyBatis의 SqlSessionFactory를 스프링 빈으로 등록합니다. 데이터베이스 연결 정보와 매퍼 파일 위치 등을 설정할 수 있습니다.
<property name="dataSource" ref="dataSource" />: 데이터베이스 연결을 위한 DataSource를 설정합니다.
<property name="mapperLocations" value="classpath:mapper/*.xml" />: MyBatis 매퍼 파일의 위치를 지정합니다.
2. 매퍼 인터페이스 스캔 설정
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">: MyBatis 매퍼 인터페이스를 자동으로 스캔하여 빈으로 등록합니다.
<property name="basePackage" value="cohttp://m.example.mapper" />: 매퍼 인터페이스가 위치한 패키지를 지정합니다.
3. 주요 설정 요소
* environments: 데이터베이스 연결 설정 정보를 담고 있습니다. 여러 환경을 정의할 수 있으며, 각 환경은 고유한 id를 가집니다. 기본 환경을 지정할 수도 있습니다.
* environment: 특정 환경 설정을 정의합니다. transactionManager와 dataSource 설정을 포함합니다.
* transactionManager: 트랜잭션 관리 방식을 설정합니다. JDBC 방식과 MANAGED 방식 중 선택할 수 있습니다.
* dataSource: 데이터베이스 연결 정보를 설정합니다. POOLED, UNPOOLED, JNDI 중에서 선택할 수 있습니다.
* properties: 외부 프로퍼티 파일에서 설정 값을 가져올 때 사용합니다. 데이터베이스 연결 정보 등을 외부 파일에서 관리할 수 있게 해줍니다.
* settings: MyBatis의 동작 방식에 대한 세부 설정을 할 수 있습니다. 예를 들어, 캐시 활성화 여부, 지연 로딩 설정 등을 조정할 수 있습니다.
* typeAliases: 자주 사용하는 Java 타입에 별칭을 부여할 수 있습니다. 이를 통해 XML 매퍼 파일에서 짧은 이름을 사용하여 가독성을 높일 수 있습니다.
* typeHandlers: Java 타입과 JDBC 타입 간의 변환을 커스터마이징할 수 있습니다. 특정 타입을 처리하는 방법을 정의할 수 있습니다.
* objectFactory: 결과 객체를 생성할 때 사용할 팩토리를 지정할 수 있습니다. 기본적으로 MyBatis는 기본 생성자를 사용하여 객체를 생성하지만, 이를 커스터마이징할 수 있습니다.
* plugins: MyBatis 실행 과정에 특정 기능을 추가할 수 있는 플러그인을 설정할 수 있습니다.
* mappers: SQL 매퍼 파일의 위치를 지정합니다. 매퍼 파일에는 SQL 쿼리와 매핑 정보가 포함되어 있습니다.
'웹개발 > spring && springboot' 카테고리의 다른 글
스프링 mybais 동적쿼리 작성 (0) | 2024.04.06 |
---|---|
스프링 mybatis 쿼리 작성 (0) | 2024.04.06 |
스프링 JPA 쿼리 메소드의 기능 (0) | 2024.04.05 |
스프링 WebFlux (0) | 2024.04.03 |
스프링 환경 추상화(Environment Abstraction) (0) | 2024.04.03 |