여기 상황은 동적 구현이있는 인터페이스가 있다는 것입니다. 이러한 구현은 런타임에 인스턴스화되어야하고 인터페이스를 주입하여 사용해야합니다.스프링에서 참조 된 종속성 구현을 어떻게 동적으로 생성합니까?
public interface Configuration {
void doStuff();
}
public interface ExampleConfiguration extends Configuration {
void doStuff();
}
ExampleConfiguration에는 동적으로 생성 된 구현이 있습니다. 즉, ExampleConfigurationImpl 클래스가 없습니다. 나는 자동으로 주입이 생성 구현을 갖고 싶어하기 때문에 봄에 통합하기 어려운 증명 :
@Autowired
private ExampleConfiguration config;
가 나는 BeanPostProcessor를 추가하는 길을 갔다하지만 해결되지 않은 종속성이 통과하지 않는 것처럼 나는대로 (보이는 기대할 것이다).
기본적으로 누락 된 종속성을 해결하기 위해 (DependencyDescriptor 인스턴스와 같은 상황 정보와 함께) 호출 될 팩토리를 제공하는 방법이 있습니까? Configuration 인터페이스를 확장하는 여러 개의 인터페이스가 있습니다.
봄 버전은 3.0.3입니다.
+1/2 - 'applicationContext.xml'에 필요한 XML을 보여 주어 factory bean을 설정하고 참조 할 수 있습니까? –
@DavidHarkness : 내 업데이트를 확인하십시오. –
그래서 저는 factory bean 접근 방식을 사용했습니다. 그러나 문제는 Configuration을 확장하는 인터페이스가 여러 가지 경우라는 것입니다. Configuration의 모든 확장을위한 factory bean이 필요할 것이다. – Zack