[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/를 붙여주지 않으면 에러가 발생한다.

반응형
블로그의 정보
배부른코딩로그
배부른코딩로그