# Thread.currentThread().getContextClassLoader( ) 의 기능
ClassLoader의 주요 기능은 클래스를 로딩하는 것 뿐만 아니라 다른 리소스도 읽어 올 수 있는 유용한 기능을 제공한다.
ClassLoader는 스레드에서 획득할 수가 있다. 여기서 획득된 스레드는 어떤 기반에서 생성된 것인지 구분을 해서 사용해야 한다. 주로 자바 main( ) 메소드 기반의 단독 애플리케이션을 예를 들지만 일반적으로는 웹 애플리케이션을 주로 다룰 것이다. 따라서 스레드를 어떤 기반에서 가져올 것인지 고려해야 하는 것이다.
단독 애플리케이션 환경에서는 ClassLoader.getSystemResourceAsStream( ) 메소드를 통해 해당 리소스를 읽어오면 되지만, 웹 애플리케이션 환경에서는 Thread.currentThread().getContextClassLoader( ).getResourceAsStream( ) 메소드를 통해 리소스를 읽어오면 된다.
웹 애플리케이션은 웹 컨테이너 안에서 실행되며, 웹 컨테이너는 여러 개의 애플리케이션을 분리하여 구동시키기 위해 스레드를 각각 생성한다. 각 스레드에 ClassLoader를 부여하며 이때 setContextClassLoader( ) 메소드를 사용한다.
만일 현재 실행되는 웹 어플리케이션의 스레드에 있는 ClassLoader를 가져오기 위해서는 getContextClassLoader( ) 메소드를 사용한다. 이후에 ClassLoader에 셋팅 된 클래스 패스에서 해당 리소스를 가져온다.
'Java > mybatis' 카테고리의 다른 글
마이바티스는 동적 쿼리문 생성에 사용되는 <if /> 구성 요소를 제공... (1) | 2014.05.01 |
---|---|
마이바티스와 아이바티스 설정 비교 (0) | 2014.01.01 |
[javaModel, sqlMap]Generator 및 table 엘리먼트에서 설정 가능한 프로퍼티 (0) | 2014.01.01 |
SqlBuilder 의 중요 메소드 (0) | 2013.12.26 |
mapper 인터페이스에서 사용 가능한 annotation (0) | 2013.12.20 |