[java] java : comp / env 란 무엇입니까?

무엇을 의미 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 도 참조하십시오.


답변