RMIClassLoader
RMIClassLoader (RMI 클래스 로더)
RMI와 함께 동적 클래스 로딩을 지원하는 정적 메서드들로 구성된 클래스입니다.
본문
네트워크 위치(하나 이상의 URL)에서 클래스를 로드하고, 원격 측이 기존 클래스를 로드해야 하는 위치를 얻는 메서드가 포함됩니다. 이 메서드들은 원격 메서드 호출의 인자·반환값에 담긴 클래스를 마샬링·언마샬링할 때 RMI 런타임이 사용하며, 애플리케이션이 RMI의 동적 클래스 로딩 동작을 흉내내기 위해 직접 호출할 수도 있습니다.
다음 정적 메서드들
loadClass(URL,String),loadClass(String,String),loadClass(String,String,ClassLoader)loadProxyClass(String,String[],ClassLoader)getClassLoader(String),getClassAnnotation(Class)
의 구현은 이러한 메서드들의 서비스 제공자 인터페이스인 RMIClassLoaderSpi 인스턴스가 제공합니다. 메서드 중 하나가 호출되면 서비스 제공자 인스턴스의 대응 메서드에 위임하는 방식으로 동작합니다.
서비스 제공자 인스턴스는 다음과 같이 선택됩니다. 시스템 속성 java.rmi.server.RMIClassLoaderSpi가 정의되어 있고 그 값이 문자열 "default"와 같으면 getDefaultProviderInstance() 호출 결과가 사용됩니다. 그 외의 값이면, 그 속성 값으로 이름 붙은 클래스를 시스템 클래스 로더가 로드할 수 있고 그 클래스가 RMIClassLoaderSpi에 할당 가능하며 public 무인자 생성자를 가지는 경우 그 생성자로 제공자 인스턴스를 만듭니다. META-INF/services 리소스로도 제공자를 지정할 수 있습니다.