기록/BACKEND

[Spring] JNDI 설정하기

5월._. 2022. 4. 19. 23:56
728x90

[기존 Servlet에서 Connection Pool을 얻던 방식]을 Spring에서도 사용하는 방법이다. 파일 하나만 변경하면 된다.

WEB-INF > spring > root-context.xml

org.springframework.jndi.JndiObjectFactoryBean의 setJndiName에 value를 설정한다. org.springframework.jndi.JndiObjectLocator에서 상속받은 메서드인데, java:comp/env/로 시작하지 않고 resourceRef가 true로 설정돼있다면 자동으로 prefix를 붙여준다.

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
	<property name="jndiName" value="java:comp/env/jdbc/____"></property>
</bean>

 

META-INF > context.xml

저번과 동일하다.

<Context>
	<Resource name="jdbc/____" auth="Container" type="javax.sql.DataSource" 
		maxTotal="100" maxIdle="30" maxWaitMillis="10000" 
		username="____" password="____" driverClassName="com.mysql.cj.jdbc.Driver" 	
		url="jdbc:mysql://localhost:3306/____?serverTimezone=UTC&amp;useUniCode=yes&amp;characterEncoding=UTF-8"/> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>