IT 웹개발/스프링(Spring)

[Spring] 이클립스에서 Tomcat에 DataSource를 JNDI로 설정하기(JDBC -> JNDI)

펌킨고구마 2022. 5. 10. 16:06
728x90
반응형

기존 사용중인 프로젝트에서는 dataSource를 jdbc로 사용하고 있었다.

 

- 기존 사용중인 dataSource 

<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource"
		p:driverClassName="oracle.jdbc.driver.OracleDriver"
		p:url="jdbc:oracle:thin:@localhost:1521:xe"
		p:username="user_id" p:password="password" />

 

jdbc를 jndi로 변경하기로 함 

 

-------------변경방법--------------

1. tomcat 내의 설정 변경

   1-1. server.xml

   1-2. context.xml

2. spring 프로젝트 내의 설정 변경

   2-1. web.xml 

   2-2. DataSource

--------------------------------------

 

1. TOMCAT내의 설정변경

 

1-1. server.xml

서버에서 server.xml 열기

여기에 JNDI resource를 정의한다.

아래의 resource를 맞게 수정하여 <GlobalNamingResources></GlobalNamingResources> 태그 안에 넣는다.

    <Resource auth="Container" 
		name="jdbc/test" 
		type="javax.sql.DataSource" 
		driverClassName="oracle.jdbc.OracleDriver" 
		url="jdbc:oracle:thin:@localhost:1521:xe" 
		username="user_id" 
		password="password" 
		validationQuery="select 1 from dual" 
		maxActive="20" 
		maxIdle="20" 
		maxWait="5000" 
		minIdle="2" 
		/>

내 경우에는 oracle db였기에 url과 driverClassName이 oracle이지만 맞는 것을 사용하면 된다.

 

* MariaDB의 경우

driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://localhost:3306/test"

* MySQL의 경우

driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/test"

* MS-SQL의 경우

driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://127.0.0.1;DatabaseName=test"

 

1-2. context.xml 

ResourceLink정의

<Context></Context> 안에 추가

<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>

 

2. 프로젝트 내의 설정 변경

 

2-1. web.xml

resource-ref 를 <web-app></web-app> 안에 추가 

	<resource-ref>
		<res-ref-name>jdbc/test</res-ref-name> 
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>

 

2-2. datasource부분 수정

이건 프로젝트마다 다르겠지만

내 프로젝트의 경우 spring-datasource.xml 에 그냥 작성되어있어 그냥 수정할 예정이다.

맨 위에 있던 dataSource 가 있는 부분을 수정하면 된다.

 

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="jdbc/test"/>
        <property name="resourceRef" value="true"/>
    </bean>

 

그리고 프로젝트 실행해보니 잘된다 휘유 다행

728x90
반응형
LIST