[Spring] Tomcat JNDI 설정
by 배부른코딩로그Spring Legacy에서는 DB 접근에 대한 특별한 작업이 없었다면, root-context.xml에 DataSource를 기입하게 됩니다.
위처럼 사용해도 큰 문제는 없습니다.
다만, 개발과 운영 DB가 나눠져 있다면 배포시에 일반적으로 DB DataSource를 변경해줘야 할 겁니다.
이 과정이 생각보다 귀찮습니다.
이럴 때, JNDI를 적극 활용할 수 있습니다.
Tomcat에 DB 접속 정보를 적어두고, 이를 Spring Legacy에서 가져다가 사용하는 방법입니다.
※ 괄호부분에 본인에게 필요한 정보를 기입하면 됩니다!
1. Tomcat : context.xml (DB Conn Data Resource)
아래의 예제는 한 개의 DataSource이지만, 여러 개의 DB DataSource를 넣으실 수 있습니다.
name property만 다르게 해주시면 됩니다.
<Resource
name="(customName)"
global="(customName)"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@(IP)(PORT)(SID)"
username="(DB USERNAME)"
password="(DB PASSWORD)"
maxActive="100"
maxIdle="30"
maxWait="10000"
validationQuery="SELECT 1 FROM DUAL"
validationInterval="30000"
/>
2. Tomcat : web.xml (DB Conn Ref)
tomcat의 web.xml에 기입해줘야 합니다.
<!-- DB Conn DataSource -->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>(customName)</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>(customName2)</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.JDBC Driver 다운로드 및 Tomcat lib 밑에 추가
Tomcat에서 DB Conn에 대한 JDBC Driver Lib 가 필요합니다.
Spring에서 사용했던 JDBC드라이버를 그대로 넣어주시면 됩니다.
4.Spring JDBC DataSource 설정
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/comp/env/(customName)" />
</bean>
※ 'jndiName' 프로퍼티의 value에서 java:/comp/env/를 붙여주지 않으면 에러가 발생한다.
반응형
블로그의 정보
배부른코딩로그
배부른코딩로그