반응형

스프링(Spring) MyBatis sqlSession 설정하는 곳이다.

 

context-mybatis.xml에서 sqlSessionA를 정의하고, Bean을 주입한다. 여기서, sqlSessionFactoryA라는 sqlSessionFactoryBean을 만들고, mapperLocation을 통해 아래의 경로에 있는 모든 xml을 읽어들인다.

 

context-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
       http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="sqlSessionFactoryA" class="org.mybatis.spring.SqlSessionFactoryBean"> 
		<property name="dataSource" ref="dataSourceTest" />
		<property name="mapperLocations">
			<list>
				<value>classpath:/mybatis/${jdbc.db}/test/*.xml</value>
				<value>classpath:/mybatis/${jdbc.db}/test/**/*.xml</value>
				<value>classpath:/mybatis/${jdbc.db}/test/**/**/*.xml</value>
				<value>classpath:/mybatis/${jdbc.db}/test/**/**/**/*.xml</value>
				<value>classpath:/mybatis/${jdbc.db}/test/**/**/**/**/*.xml</value>
			</list>
		</property>
		<property name="configLocation" value="/WEB-INF/conf/mybatis/mybatis-config.xml"/>
	</bean>

	<bean id="sqlSessionA" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg ref="sqlSessionFactoryA" />
		<constructor-arg index="1" value="REUSE" />
	</bean>
</beans>

 

이 context-mybatis.xml에서는 sqlSession을 정의하고, sqlSession이 각 xml을 가져올 수 있는 경로를 설정할 수 있는 곳이다.

 

스프링 배치(Spring Batch)에서 DB 분리가 되어 있을 때, 각 DB의 트랜잭션과 sqlSession이 있어야 DB를 접근할 수 있다. 그렇기 때문에, 1개의 job.xml에서는 DB에 접근해야 하는 각 sqlSession을 Bean에 주입해야 한다.

 

<bean id="SkipListener" class="com.batch.tasklet.demo.trantest.SkipListener">
	<property name="sqlSessionTemplateA" ref="sqlSessionTemplateA" />
</bean>

 

위의 context-mybatis.xml에서 sqlSession bean을 주입해줘야 각 job.xml에서 ref로 가져올 수 있다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기