무엇을 의미 java:comp/env
합니까?
어떻게 보이는지 :
Context envContext = (Context)initContext.lookup("java:comp/env");
하다 ?
나는 다음과 같은 조회를 이해합니다.
(DataSource)envContext.lookup("jdbc/MyDatasource")
이름을 조회 MyDatasource
에서 context.xml
또는 web.xml
데이터베이스의 URL을 얻을 수 있습니다. 그렇습니까? !! 그러나 전자 조회는 무엇을합니까?
답변
java:comp/env
현재 Java EE 구성 요소 (웹 앱 또는 EJB)에 대한 속성을 찾을 수있는 JNDI 트리의 노드입니다.
Context envContext = (Context)initContext.lookup("java:comp/env");
이 노드를 직접 가리키는 변수를 정의 할 수 있습니다. 그것은 할 수 있습니다
SomeBean s = (SomeBean) envContext.lookup("ejb/someBean");
DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");
보다는
SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean");
DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");
절대 경로 대신 상대 경로. 그것이 사용되는 것입니다.
답변
이름으로 전역 변수를 저장할 수있는 메모리 내 전역 해시 테이블입니다.
“java :”url 체계는 JNDI javaURLContextFactory
가 일반적으로 앱 컨테이너에서 제공 하는 클래스 를 찾도록합니다. 예를 들어 Tomcat의 구현 javadoc입니다.
NamingManager.getURLContext 도 참조하십시오.