[db] JNDI


JNDI - Java Naming and Directory Interface

JNDI

JNDI는 Java 소프트웨어 클라이언트가 이름(name)을 이용하여 데이터 및 객체를 찾을 수 있도록 도와주는 디렉토리 서비스에 대한 Java API이다.

img

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





© 2017. by isme2n