2012-01-06 2 views
3

일부 비즈니스 개체에서 일부 런타임 바이트 코드 조작을 수행하고 있으며 올바른 순서로로드하는 것이 매우 중요합니다. 현재 저는 Startup 서블릿에서 올바른 순서로 Class.getSimpleName()을 호출하고 있습니다. 이것은 잘 작동하지만, 더 좋은 방법이 있다면, 나는 모든 귀입니다.Tomcat에서 서블릿 클래스를로드하기 전에 코드를 실행할 수 있습니까?

그러나 이제 특정 서블릿 필터를 사용하여 구체적인 비즈니스 개체 유형을 반환해야합니다. 이로 인해 클래스 로더가 특정 비즈니스 객체 클래스를 먼저로드 (순서가 잘못됨)하고 일이 중단됩니다. 내가 좋아하는 것 무엇

는() 내 서블릿 또는 필터의로드하기 전에 를 해킹 내 getSimpleName을 실행할 수 있도록한다. 클래스 로더가 내 필터를로드하기 전에 실행되는 코드를 넣을 수있는 곳이 있습니까?

답변

1

tomcat 클래스 로더는 이러한 방식으로 작동합니다.

enter image description here

당신은 웹 응용 프로그램의 클래스로드, 다음 jar 파일에서 해당 클래스를 넣을 수 있습니다 당신의 전에 클래스를로드하고 바람둥이 공용 라이브러리, 이러한 클래스는 이전에로드됩니다에 배포하려면 웹 애플리케이션 클래스는 클래스 로더에 의해로드된다.

apache tomcat 클래스 로더가 작동하는 방법에 대한 문서를 확인할 수 있습니다. here

관련 문제