상세 컨텐츠

본문 제목

[ Spring ] ibatis Xml파일 서버 재시작 없이 반영 방법

실무/[ 스프링 ]

by glenn93 2024. 3. 15. 13:38

본문

728x90
반응형

Spirng(ibatis)환경에서 xml을 반영하면 서버를 재시작해야하는 번거로움이 있다. 

따라서, 세션끊김현상과 재부팅 웨이팅 시간등의 불편요소를 없애기 위해 자동Refresh하는법을 알아봤다. 



환경

iBATIS sqlmap 2.3.0, Java 1.4, Spring 2.5 이상 또는 iBATIS sqlmap 2.3.2 이상,
Java 1.5 이상, Spring 2.5.5 이상



 

1. context-sqlMap.xml 에 RefreshableSqlMapClientFactoryBean 를 설정해준다.

 10초간격으로 변경사항 있을시 체크

<?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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd			
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

	<bean id="nativeJdbcExtractor"
		class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"
		lazy-init="true" />

	<bean id="oracleLobhandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"
		lazy-init="true">
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
	</bean>


	<!-- SqlMap setup for iBATIS Database Layer -->
	<!-- <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> -->
	
<bean id="sqlMapClient" class="ibatis.RefreshableSqlMapClientFactoryBean">
		<property name="configLocation" value="classpath:config/ibatis/sql-map-config.xml" />
		<property name="dataSource" ref="tpmsAppDS" />
		<property name="lobHandler" ref="oracleLobhandler" />
		<property name="checkInterval" value="10000" />
	</bean>

</beans>

 

 

 

2. sql-map-config.xml 에 자동 리로딩 시킬 목록 작성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
    <typeAlias alias="hashMap" type="java.util.HashMap" />
    <typeAlias alias="map" type="java.util.Map" />
    <typeAlias alias="linkedHashMap" type="org.springframework.util.LinkedCaseInsensitiveMap" />
    <typeAlias alias="resultMap" type="org.apache.commons.collections.map.CaseInsensitiveMap"/>
    <typeAlias alias="resultMap" type="egovframework.com.cmm.EgovResultMap"/>

    <!-- 공통 -->
    <sqlMap resource="query/tpms/cmmn/CMMN_TPMS_SQL.xml" />
    <sqlMap resource="query/tpms/cmmn/CMMN_EON_SQL.xml" />
    
    <!-- 로그인  -->
    <sqlMap resource="query/tpms/portal/ptu/PORTAL_PTU_SQL.xml" />
    <sqlMap resource="query/tpms/mngr/login/LOGIN_SQL.xml" />

</sqlMapConfig>

 

 

 

참고 블로그

https://otep.tistory.com/287

728x90
반응형

관련글 더보기