EventContext
EventContext (이벤트 컨텍스트)
컨텍스트에 이름이 지정된 객체가 변경될 때 발생하는 이벤트에 대해 알림을 받을 리스너를 등록/등록 해제하는 메서드를 포함하는 인터페이스입니다.
본문
addNamingListener() 메서드의 이름 매개변수를 타깃(target)이라고 하며, 타깃과 범위(scope)가 리스너가 관심 있는 객체를 식별합니다. 존재하지 않는 타깃에 관심을 등록하는 것도 가능하지만 서비스 프로바이더와 기본 프로토콜/서비스에 따라 지원 범위가 제한될 수 있습니다.
리전스트레이션 메서드를 호출한 EventContext 인스턴스가 (잠재적으로) 생성되는 이벤트의 소스입니다. 이벤트 소스는 타깃이 이름으로 지정하는 객체와 반드시 같지는 않습니다. 타깃이 빈 이름일 때만 타깃이 이름으로 지정한 객체가 소스가 됩니다.
등록된 리스너는 removeNamingListener()로 제거되거나, 이벤트 정보를 수집하는 동안 예외가 던져지거나(리스너가 NamingExceptionEvent를 받을 때), 등록한 EventContext에서 Context.close()가 호출되면 등록 해제됩니다.
등록/등록 해제 메서드는 NamingListener 인스턴스를 받습니다. NamingEvent의 이벤트 유형별로 NamingListener의 하위 인터페이스가 있으며, 여러 이벤트 유형에 관심이 있다면 리스너 구현이 여러 하위 인터페이스를 구현해 단일 addNamingListener() 호출로 등록할 수 있습니다.
EventContext 인스턴스는 일반적으로 스레드 안전이 보장되지 않으므로, 여러 스레드가 같은 EventContext에 동시에 접근할 때는 주의해야 합니다.