2014-08-26 2 views
1

.class 파일이 기본 패키지의 디렉토리에 있습니다. 각 파일에는 클래스가 있으며이 클래스에는 @Service 주석이 있으며 메소드에는 @Operation 주석이 있습니다.런타임시 서블릿 경로를 어떻게 결정할 수 있습니까?

런타임시 주석을 읽는 방법을 알고 있지만이 파일은 .class 파일이며이를 읽는 방법을 모르겠습니다. 그렇지 않으면 각 Service 주석을 경로에 작성하여 context.xml 파일에 저장하고 각 작업을 런타임에 web.xml 파일의 url-pattern에 작성하십시오. 내가 어떻게 할 수 있니? 당신이 클래스 경로에 디렉토리에 클래스를 넣으면

답변

0

, 당신은 쉽게 클래스 로더 API를 통해 액세스 할 수 있습니다 :

Class<?> clazz = this.getClass().getClassLoader().loadClass(className); 

이제 문제는 여기에 당신이 클래스 이름을 모르는이며 기본적를 검사 할 모든. 따라서 라이브러리 중 하나를 사용할 수 있습니다.

ClassPath classPath = ClassPath.from(this.getClass().getClassLoader()); 
for (ClassPath.ClassInfo classInfo : classPath.getTopLevelClasses()) { 
    Class<?> clazz = classInfo.load(); 
    // process annotations here 
} 
+0

안녕 hoaz, 나는 당신이 말한 두 번째 부분을 사용하여 answe –

+0

에 대한 감사 예를 들어, 구아바는 ClassPath 도우미 유틸리티를 통해 클래스 경로를 검색하는 API를 제공합니다. 나는 System.out.println ("Classpath ="+ classPath.toString());을 사용한다. sintax는 classPath가 무엇인지 확인합니다. 출력은 Classpath = [email protected]입니다. 내가 src에 서버 packag 클래스 경로를 변경하고 싶습니다. 나는 어떻게해야합니까? –

+0

프로그램을 실행할 때 자바 프로세스에 필요한 디렉토리를 넘겨 준다.'java -classpath

...' – hoaz

관련 문제