2012-03-03 3 views
1

종속성 주입 프레임 워크를 구축 중이며 클래스 경로의 모든 클래스 파일을 반복하고 열거 형 객체에 특정 주석이있는 클래스를 저장하는 작업이 포함됩니다. 의존성 주입 측면에서, 클래스가로드 될 때 모든 @inject 표기법을 찾은 다음 @injectResource 표기법을 포함하는 모든 클래스를 검색 한 다음 DI 부분을 수행하는 데 필요한 메소드 값을 리턴합니다.전역 변수를 통해 런타임시 특정 클래스 반복

제 질문은 컴파일 시간에 열거 클래스 목록을 작성하는 것이 더 합리적입니다. 따라서 입력 필드에서 해당 클래스를 검색해야 할 때마다 프로젝트의 모든 클래스를 매번 검색 할 필요가 없습니다. .

서블릿 config를 통해 컴파일 할 때 클래스 목록을 만들 겠지만,이 "전역"목록을 저장할 수 있으므로 프로젝트 전체에서 반복적으로 액세스 할 수 있습니까?

내 머리 꼭대기에서 컴파일 타임에 열거 형 목록이 포함 된 정적 클래스를 만들 것이라고 생각하지만 정적 클래스를 사용하는 것을 선호하지 않으며 이것이 맞는지 확실하지 않습니다. 가장 최적의 접근 방식.

+0

앱 컨텍스트? 그것이 변하지 않는다면, 그것이 싱글 톤/"정적 클래스"인지 아닌지는 누가 알 수 있습니까? 한 가지 방법이나 다른 방법으로, 단일 레코드 시스템이 있다면 그것은 싱글 톤/"정적 클래스"/ etc입니다. - 그 (것)들을위한 결코 사용법이없는 생각의 함정에서에 빠지지 말라. –

답변

-1

서블릿 컨텍스트를 사용할 수 있습니다. 그런데 새로운 클래스를 만들 때마다 모든 클래스를 다시 스캔해야하는 이유는 무엇입니까? 클래스에 대한 참조를 한 번만 유지하고 클래스 목록을 하드 코딩하는 대신 사용하십시오.

+0

정확하게이 질문에 관한 것입니다. 하지만 표준 자바 클래스를 통해 서블릿 컨텍스트에 액세스 할 수는 없으며, 먼저 참조를 전달하면 종속성 주입 프레임 워크의 목적을 상실 할 수있다. – ryandlf

+0

표준 Java 클래스에서 DI 컨테이너에 액세스하려면 어떻게해야합니까? 정적 메소드를 호출하는 것인가? –

관련 문제