대용량의 XML 파일에서 생성되는 정적 클래스 필드에 일부 데이터를 주입하려고합니다. 사용자 정의 클래스 초기화를위한 경량급 클래스 로더?
class Foo {
...
static MetaData xxx;
static MetaData yyy;
}
사출
는 메타 데이터 인스턴스를 구축이 Foo.properties 및 XXX, YYY 특성 분석 발견은 매우 간단하다.IoC 컨테이너가이 작업에 도움이 될지 모르지만 그렇지 않은 것 같습니다.
Foo는 IoC 컨테이너에 의해로드되지 않는 클래스에 의해 사용될 수 있기 때문에.
내 생각에, 리플렉션을 기반으로 특정 클래스 초기화 코드를 추가하기 위해 컨텍스트 클래스 로더를 수정하십시오.
아이디어가 있으십니까?
EDIT 많은 IoC 컨테이너가 있는데, 아마도 초기화 확장을 지원할 수도 있습니다.
'Foo는 IoC 컨테이너에 의해로드되지 않는 클래스에 의해 사용될 수 있기 때문에 .' 이것은 아마도 문제가 아니지만 IoC는 일반적으로 몇 가지 구성/주석을 필요로하며 이것이 가능할 수 있습니다. ClassLoader를 수정하지 않고도 모든 클래스 또는 속성 파일을 찾고 Class.forName을 호출하고 반사를 수행하면 안됩니까? 사실, 가능한 경우 Map>를 작성하여 모든 것을 피하는 것이 좋습니다. –
maaartinus
아니요, Class.forName()을 제거하면 디자인 용도입니다. 맵은 없으며, 구문 분석/생성 프로세스는 매우 빠르며 MetaData는 메모리 풋 프린트를 줄이기위한 약한 참조입니다. –
왜 xxx, yyy가 지연 모드로 초기화 될 수 없습니까? –