ConnectionPool(2)mybatis&JNDI

이진아·2020년 5월 27일
1

1. myBatis 연동의 경우

1) Configuration.xml

: dataSource의 type 속성에 POOLED 주는 것은 pooling을 사용하겠다는 의미
: 그 아래 property에 값을 셋팅하여 pooling을 설정

2) .properties

: (이름, 값)프로퍼티를 관리하는 파일
: property파일을 참조하여 ${프로퍼티이름}을 통해 프로퍼티 값을 가져올 수 있음
: 또한 properties 아래 property에 값을 추가하여 사용할 수 있음


2. JNDI 사용

: Java Naming & Directory Interface
: 물리적으로 떨어져 있는 곳의 객체를 네이밍을 통해 등록하고 참조하여 이용하기 위한 인터페이스

1) server.xml

[문제] web.xml에 DBCPinit 클래스를 등록해놓는 것은 프로젝트 제한적
[따라서] server.xml의 context에 Resource를 등록해 놓고, 프로젝트가 이를 reference(web.xml을 통해) 할 수 있게 해주면, 서버 단위로 해당 Resource 등록된 객체를 사용할 수 있다.

2) web.xml

: Resource의 name 속성값은 web.xml의 res-ref-name의 값과 같아야 함!
: Resource의 type 속성값은 web.xml의 res-type의 값과 같아야 함!

3) 실제 db연동 코드

  • InitialContext 클래스
    : JNDI 작업을 수행하기 위해서는 InitialContext 클래스가 필요

  • lookup 메소드
    : InitialContext 클래스의 lookup 메소드를 통해 네임스페이스에 바인드된 오브젝트를 찾을 수 있게 된다.

  • java:comp/env
    : JNDI의 기본 네임스페이스

  • DataSource
    : 커넥션 풀에서 운용되는 Connection 객체를 관리해주는 객체
    : 이를 통해 커넥션의 획득과 반납이 이루어 진다.

0개의 댓글