Spring - JDNA (향상된 ConnectionPool, Servers에 DB등록하기)

2019. 7. 19. 11:54카테고리 없음

-----------------------JDNA (ConnectionPool 상위버전)---------------------
        
JNDA(Java Naming and Directory Interface)
        - JAVA의 이름 서비스다.
        - 생성한 객체를 특정이름으로 바인딩(연결, 저장)하고,
          지정된 이름으로 바인딩된 객체를 탐색하기 위한 API를 제공하는 것

        - JNDI API 사양
                - javax.naming.Context 인터페이스에 정의되어 있다.
                - 주요 메소드
                        void bind(String name, Object obj)
                                - JDNI에 객체를 지정된 이름으로 등록한다.
                        void rebind(String name, Object obj)
                                - JNDI에 지정된 이름으로 등록된 객체를 새 객체로 교체한다.
                        Object lookup(String name)
                                - JNDI에서 지정된 이름으로 등록된 객체를 조회한다.
                        void unbind(String name)
                                - JNDI에서 지정된 이름으로 등록된 객체를 삭제한다.

 



설정 방법 (Tomcat 경우)
        1. Servers의 context.xml에 작성해야 한다.

 

<Resource name="jdbc/myoracle"
		auth = "Container"
		type = "javax.sql.DataSource"
		driverClass="oracle.jdbc.OracleDriver"
		url = "jdbc:oracle:thin:@localhost:1521:xe"
		username = "hr"
		password = "zxcv1234"
		maxTotal = "20"
		maxIdle = "10"	
		maxWaitMillis = "-1" />




        2. 적용할 프로젝트의 root-context.xml에 설정을 한다.

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/myoracle"/>





사용 이유
        1. 편의성 : Servers의 context.xml에 설정만 해두면 간편이 사용가능하다.
        2. 기능성 : 기존의 ConnectionPool 보다 훨씬 좋은 성능을 가지고 있다.