RMIClassLoader

RMIClassLoader (RMI 클래스 로더)

RMI와 함께 동적 클래스 로딩을 지원하는 정적 메서드들로 구성된 클래스입니다.

출처: Java API Reference

본문

네트워크 위치(하나 이상의 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 리소스로도 제공자를 지정할 수 있습니다.

더 알아보기 (Learn more)

Java 공식 API