2012-05-22 2 views
3

부모 클래스에 위임하는 대신 클래스의 검색 및로드 자체를 시도하는 대신 명시/비정규 규칙에 위배되는 맞춤 클래스 로더가있는 경우?Java 클래스 로더 위임 모델은 필수입니까?

+0

내가 아는 한, 버려지지만 사람들이 말하는 것을 들어 볼 수 있습니다. –

+1

[source] (http://docs.oracle.com/javase/specs/jvms/)에 대한 모든 것을 읽어보십시오. se7/html/jvms-5.html # jvms-5.3). 위임하지 않는 것이 허용됩니다. –

답변

3

톰캣 웹 애플리케이션 클래스 로더는이 모델을 다음, 그래서 그것을 작동 상상 이상 일부 정도 : the Tomcat classloader documentation에서 :

위에서 언급 한 바와 같이, 웹 애플리케이션 클래스 로더가 기본에서 발산 자바 2 위임 모델 (Servlet Specification, 버전 2.4, 9.7.2 웹 응용 프로그램 클래스 로더의 권장 사항에 따라) 웹 애플리케이션의 WebappX 클래스 로더에서 클래스를로드하라는 요청이 처리 될 때이 클래스 로더는보고하기 전에 위임하는 대신 로컬 저장소에서 먼저 찾습니다. 예외가 있습니다. JRE 기본 클래스의 일부인 클래스는 재정의 될 수 없습니다. 일부 클래스 (예 : J2SE 1.4+의 XML 파서 구성 요소)의 경우 J2SE 1.4 보증 기능을 사용할 수 있습니다. 마지막으로 Servlet API 클래스를 포함하는 모든 JAR 파일은 클래스 로더에 의해 명시 적으로 무시됩니다. 웹 응용 프로그램에 그러한 JAR을 포함하지 마십시오. Tomcat 6의 다른 모든 클래스 로더는 일반적인 위임 패턴을 따릅니다. 이 작업을 수행하기 전에 매우 신중해야처럼

그것은 나에게 소리를하지만, 신중하게 사용 된 경우 어떤 경우에는 유용 할 수 있습니다. 문서를 철저히 문서화해야하며 (특히 타사 개발자가 볼 수있는 경우) 특히 가시적 인 문제를 해결하는 데 충분한 로깅/진단 기능을 포함해야합니다.

+0

:) 알았어요! 고마워요 !! – meer