JNDI 요약

2111 단어 JNDI
오늘은 그 줄이 움직인 줄도 모르고 JNDI를 씹기 시작했다.문구에 구애받지 않는다고 말하는 것은 사실 겉만 번지르하고 깊이가 없다.독서 노트로 삼다.
젠디 이거 뭐 하는 거예요?EJB, RMI-IIOP은 모두 그것으로 대상을 정한다. 먼저 대상을 한 이름으로 묶은 다음에 그 이름을 그 묶은 대상을 꺼내라.(이렇게 쓰자 나는 갑자기 내가 왜 JNDI에 관심을 가지는지 알게 되었다. 나는 요 며칠 동안 RMI, RMI-IIOP, EJB, CORBA, IDL 이런 것들을 계속 보았는데 왜 그런지 기억이 나지 않는다.)
이렇게 간단해.마치 슈퍼마켓 문 앞에 있는 저장함 같아. 가방을 먼저 보관하고 상자 번호가 적힌 바코드를 가져와서 물건을 사면 이 바코드를 스캔하면 물건을 꺼낼 수 있어.내가 여기에 쓴 것은 매우 정확하지 않다. 왜냐하면 세부 사항을 소홀히 했기 때문이다. 내가 받은 가방은 내가 넣은 가방(reference로 되돌아오기) 인가, 아니면 그 가방의 복제품(서열화) 인가, 아니면 가방처럼 보이는 무언가 (로컬 구조의 stub로 되돌아오기) 인가.
여기서 찾은 물건은provider와 관련이 있을 것입니다.실제로 RMI-IIOP 장면에서 로컬stub의 실례를 되돌려줍니다.
내가 오늘 할 말은JNDI란?그것은 사실 API이다.JNDI API(Java Naming and Directory Interface)의 두 부분으로 구성됩니다.
Application Programming Interface), 일부는 JNDI SPI(Java Naming and Directory Interface)
Service Provider Interface).전자는 외관이고 후자는 구체적으로 실현된다.provider를 보고 나는 많은 사람들이 십중팔구를 알게 되었다고 생각한다.이것이 바로 플러그인입니다. 보아하니 JNDI는 서로 다른 서비스를 지원하는 것 같습니다.
여기서부터에서 보실 수 있습니다. jdk1.4 이후 JNDI SPI에는 다음 네 개의 provider가 포함됩니다.
The LDAP Service Provider
The COS Naming Service Provider
The RMI Registry Service Provider
The DNS Service Provider
그래서 우리는 평소에 JNDI를 쓸 때 이렇게 쓴다.
Hashtable<String,String> props = new Hashtable<String,String>();
		props.put("java.naming.factory.initial", "com.sun.jndi.cosnaming.CNCtxFactory");
		props.put("java.naming.provider.url", "iiop://localhost:1050");
		Context context = new InitialContext(props);
context.lookup("some service");

일련의 매개변수를 사용하여 InitialContext를 초기화합니다.사실 이곳은 의심할 여지없이 공장 모델이다. 들어오는java에 따라.naming.factory.initial에서 다른provider를 만듭니다.
EJB 컨테이너도 어느 정도 JNDI 서비스 provider입니다.그래야 내가 JNDI를 통해 EJB를 포착할 수 있잖아.
요약: JNDI는 두 부분으로 구성되어 있는데 그것이 바로 응용 프로그램 API와provider API이다.전자는 호출 인터페이스이고 후자는 서로 다른 서비스 제공자를 포장했다.여기에 한마디 더 덧붙여 말하자면, 그래도 서비스 프로그램이 시작된 후에야 JNDI를 사용할 수 있습니다.그럼 서비스 프로그램은 뭐예요?LDAP,COS,RMI,DNS야.

좋은 웹페이지 즐겨찾기