Spring 3.0.4를 사용하고 있습니다. 지도에서 @Autowired 주석을 사용하는 콩이 있습니다. 이 맵은 application-context.xml 파일에서 정의됩니다 (이 맵은 여러 팩토리 메소드를 사용하여 생성됩니다).Autowiring Map이 예상대로 작동하지 않습니다.
내 디버거를 사용할 때, 나는지도가 제대로 (예상) 콩 ID를 사용하여 구성됩니다 볼 수 있습니다. 그러나 autowiring 프로세스가 시작되면, 방금 생성 된 id를 가진 bean을 찾을 수 없다고 주장합니다. 코드의
조각 : 상황에 맞는 XML의
이@Autowired
@Qualifier("dienstverbandMap")
private Map<String, String> dienstverbandMap;
조각 :
<bean class="java.util.HashMap" id="dienstverbandMap" factory-bean="someFactoryMethod" factory-method="getMappedMap"/>
중요 세부 사항, 내 클래스와 상황에 맞는 XML이 모두 java.lang.Object 상위에 유형을 변경하는 경우 은 유선이됩니다 사실, 코드에서 HashMap으로 캐스팅하고 모든 것을 작동시킬 수 있습니다. 그러나 그것은 내가 분명히 원하는 것이 아닙니다.
사람은 내가 잘못 무엇 explantion있어?
네 말이 맞아. 내 factory 메소드 시그니처는 Map <>을 반환하고,이를 HashMap으로 변경하면 모든 것이 작동하기 시작합니다. 감사!! :) –
나는 반환 된 타입이 Map (또는 좀 더 구체적)이되도록 Interface를 구현했다. 그러나 그때조차도 작동하지 않았습니다. 이 기능을 사용하려면 인터페이스를 변경해야했습니다. Yuk :) –