티스토리 뷰

보통은 로컬 개발환경을 제외하고는 was에 datasource 설정을 하는 JNDI 방식을 많이 사용을 한다. JNDI는 datasource 설정을 was에서 하고 효율적인 connection pool 관리 등 여러가지 장점을 가지고 있어서 주로 이 방식이 많이 사용이 된다. 나중에 JDBC 방식과 JNDI 방식이 어떻게 다르고 장단점은 무엇인지 자세히 알아보고 이번엔 실제 설정하는 방법과 어떻게 spring과 연동하여 사용하는지에 대해 알아보겠다. 

 

server.xml or context.xml (tomcat)

<Context>
...
  <Resource name="jndi/test" auth="Container"
        factory="com.encrypt.EncryptedDataSourceFactory"
        type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
        url="jdbc:oracle:thin:@ip:port:sid"
        username="username" password="암호화된pwd" maxTotal="20" maxIdle="20"
        maxWaitMillis="-1"/>
</Context>

 

여러 was 마다 각각 jndi 설정하는 방법이 있지만 이번에는 tomcat을 예로 알아보도록 하겠다. 

tomcat의 설정 파일인 server.xml 이나 context.xml 파일에서 jndi 설정을 할 수 있다. 이 파일에서 <Context> 하위에 <Resource> 부분에 위와 같은 설정을 넣어준다. 

여기서 다른 부분은 JDBC 설정과 동일하니 넘어가고 name과 factory 부분에 대해서만 살펴보겠다. 

 

name은 java source와 이 설정을 연결시켜주는 연결고리 같은 역할을 한다고 보면 된다. 이름을 동일하게 지정을 해야 하고 tomcat의 경우는 name을 설정하는데 주의해야 할 점이 있다. 

 

tomcat을 사용할때 spring에서의 jndi 설정

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

 

위의 bean은 server.xml에서 jndi/test로 지정한 datasource를 바라본다. 즉 tomcat의 경우는 spring bean 설정을 할때 jndiName에 java:comp/env/ 를 앞에 추가해 줘야 한다. 이렇게 하면 was의 datasource 설정을 바라볼 수 있다. 

 

 

factory는 주로 username이나 password를 암호화 할때 사용을 한다. 암호화를 수행하는 프로젝트를 jar로 export하여 tomcat의 lib 폴더에 추가를 해 넣는다. 그리고 factory에서는 jar안에 들어있는 암호화를 수행하는 클래스를 정의해 놓으면 그 클래스를 통해 username이나 password를 복호화를 수행한다. 

 

자세한 과정은 다음을 참고하도록 한다. 

 

 

Tomcat username / password 암호화 (with DataSourceFactory)

tomcat에서 jndi datasource 설정을 하는 방법은 전에 알아보았다. Tomcat JNDI Datasource 설정하여 Spring 연동하기 보통은 로컬 개발환경을 제외하고는 was에 datasource 설정을 하는 JNDI 방식을 많이 사용을..

oingdaddy.tistory.com

 

그 외에 기본적인 datasource 정보 및 optional한 설정들을 넣어주고 application을 deploy 시키고 서버 기동하여 연결을 확인해보면 된다. 

 

끝!

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31