[Mybatis] 커스텀 구성(Configuration) 개념과 예제
MyBatis의 커스텀 구성은 MyBatis의 동작을 개별적으로 조정하거나 확장하는 것을 의미합니다. 커스텀 구성을 통해 MyBatis의 기본 동작을 수정하거나 확장하여 특정 요구 사항에 맞게 조정할 수 있습니다. 이를 통해 데이터베이스 접속, 트랜잭션 관리, 로깅 등 다양한 측면을 개별적으로 설정할 수 있습니다.
예제: 커스텀 구성
- 매퍼와 설정 XML 파일 분리: MyBatis 설정과 매퍼의 내용을 분리하여 관리하도록 설정 파일을 구성합니다.
<!-- mybatis-config.xml -->
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/BookMapper.xml"/>
</mappers>
</configuration>`
<!-- com/example/BookMapper.xml -->
<mapper namespace="com.example.BookMapper">
<!-- 매퍼 내용 -->
</mapper>`
- 커스텀 구성 클래스 생성:
org.apache.ibatis.session.Configuration
클래스를 확장하여 커스텀 구성 클래스를 생성합니다.
import org.apache.ibatis.session.Configuration;
public class CustomConfiguration extends Configuration {
public CustomConfiguration() {
// 추가적인 설정 또는 확장 작업 수행
}
}`
- 커스텀 구성 사용: 커스텀 구성 클래스를 사용하여
SqlSessionFactory
를 생성합니다.
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class CustomConfigurationExample {
public static void main(String[] args) {
InputStream inputStream = CustomConfigurationExample.class.getResourceAsStream("/mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// sessionFactory 사용
}
}`
커스텀 구성을 사용하면 MyBatis의 기본 설정을 수정하거나 확장할 수 있습니다. 위의 예제에서는 데이터베이스 접속 설정을 외부화하고, 커스텀 구성 클래스를 생성하여 특정 동작을 확장하는 방법을 보여주고 있습니다. 이를 활용하여 프로젝트의 요구 사항에 맞게 MyBatis의 동작을 조정할 수 있습니다.