특정 클래스가 시스템에 등록해야하는 레지스트리 클래스가있는 경우가 있습니다. API를 작성하기 때문에 런타임 전에 어떤 클래스인지 반드시 알 수는 없으므로 각 솔루션 내에서 정적 블록을 사용하여 자체 등록합니다.런타임에 클래스를 강제로드 할 수있는 방법이 있습니까?
문제는 물론 각 클래스가 초기화 될 때까지 정적 블록이 실행되지 않으며 각 클래스에 대한 명시 적 참조가 없으므로 초기화되지 않습니다. Catch-22.
그래서 클래스가 명시 적으로 참조하지 않고 시작시 초기화되는지 확인하는 방법이나 주석이 있습니까?
클래스가 초기화되었는지 확인하기 위해'Class.forName ("com.example.MyClass")'를 호출 할 수 있습니까? 또한'class.forName' 메쏘드가 있습니다. 매개 변수로'initialize' 플래그를 사용합니다. –
제가 말했듯이, 제 코드는 미리 클래스를 인식하지 못합니다. 명시 적으로 호출 할 수 있다면 문제가되지 않을 것입니다.) – mikek
클래스 이름을 나열하기 위해 Java 속성 또는 구성 파일을 사용하여 직접로드 할 수 있습니까? *가 특정 Java Virtual Machine (JVM) *의 응용 프로그램에 대해 한 번 인스턴스화되도록 보장되는 새로운 종류의 세션 bean 인'@ Singleton' bean 주석을 사용할 수 있습니까? –