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>
참고 블로그
[ Spring ] 컨트롤러는 어떻게 특정 경로로 이동 시킬까? (1) | 2024.04.12 |
---|---|
[ Spring ] 스프링 스케줄 (Spring Schedule) (0) | 2024.04.01 |