[db] JNDI
JNDI - Java Naming and Directory Interface
JNDI
JNDI는 Java 소프트웨어 클라이언트가 이름(name)을 이용하여 데이터 및 객체를 찾을 수 있도록 도와주는 디렉토리 서비스에 대한 Java API이다.
JNDI는 일반적으로 다음의 용도로 쓰인다
- 자바 애플리케이션을 외부 디렉터리 서비스에 연결
- 자바 애플릿이 호스팅 웹 컨테이너가 제공하는 구성 정보를 참고
사용 이유
- 여러 개의 웹어플리케이션이 하나의 WAS에 올라간 경우 - WAS에서 한 번에 설정해 주는 것이 자원낭비를 줄일 수 있다.
설정
- 전자정부프레임워크 Jndi 설정을 참고했다. (Mysql)
tomcat의 server.xml
<GlobalNamingResources>
<Resource name="jdbc/mysqldb"
global="jdbc/mysqldb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/businessdb"
username="businessdbadm"
password="businessdbadm"
maxActive="8"
maxIdle="8"
minIdle="0"
maxWait="-1" />
</GlobalNamingResources>
tomcat의 context.xml
<Context>
<ResourceLink name="jdbc/mysqldb"
global="jdbc/mysqldb"
auth="Container"
type="javax.sql.DataSource" />
</Context>
context-datasource.xml
<bean id="dataSource-oracle" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>${Globals.JNDI}</value>
</property>
</bean>
globals.properties
Globals.JNDI=java:comp/env/jdbc/weis