2016-11-11 1 views
0

으로, 두 콩을 정의합니다. BaseClass로, SubClass1 및 SubClass2 : 나는 세 가지 클래스를 정의했습니다. 두 개의 SubClassx는 모두 BaseClass를 확장합니다. 지금, 나는 두 개의 빈을 정의 할 필요가있다, 하나는 특정 프로필에 있습니다, 어떻게 스프링을 사용하여, 자바 프로젝트가 동일한 이름과 다른 클래스

<bean id="newBean" class="SubClass1"> 

<beans profile="xxx"> 
    <bean id="newBean" class="SubClass2"> 
</beans> 

는 서로 다른 xml 파일에 있습니다. 나는 수업 시간에 SubClass2 newBean를 주입 롬복를 사용

public class WarmUpAgent extends WarmUpAgent { 
    @Setter(onMethod = @__(@Required)) 
    private SubClass2 subClass2; 
... 

<bean id="warmUpAgent" class="WarmUpAgent"> 
    <property name="subClass2" ref="newBean" /> 
</bean> 

을하지만 프로필 "XXX"로 프로젝트를 실행할 때, 그것은 예외 :

IllegalStateException: Cannot convert value of type [SubClass1] to required type [SubClass2] for property 'subClass2' 

그것은 SubClass2와 콩 newBean을 덮어 실패하는 것 같다 프로필 "xxx"를 활성화해도 이름이 같은 다른 클래스와, 두 개의 콩을 정의하는 프로파일을 사용하는 방법은 없나요?

당신에게 대단히 감사합니다.

============================================== ==========================

나는 하나의 XML로

<bean id="newBean" class="SubClass1"> 

<beans profile="xxx"> 
    <bean id="newBean" class="SubClass2"> 
</beans> 

를 넣어 파일, 그것은 작동합니다. 그러나 프로젝트 조직에 따라 두 개의 XML 파일로 구분하고 싶습니다. 이 솔루션을 구현할 수있는 솔루션은 무엇입니까?

+0

당신은 이름이 같은 말을 계속하지만 같은 ID가 이름없는 사용하는 기본 프로필에 처음 콩을 제한보십시오! –

+0

죄송합니다, 내 실수. 나는 또한 이름을 사용하여 시도했지만 잘 작동하지 않습니다. – GameBoy

+0

2 xml 파일을 표시 할 수 있습니까 – kuhajeyan

답변

0

id 대신을 사용해보십시오.

<bean name="newBean" class="SubClass1"> 
<beans profile="xxx"> 
    <bean name="newBean" class="SubClass2"> 
</beans> 
+0

시도해 보았지만 잘 작동하지 않았습니다. – GameBoy

0

<beans profile="default"> 
    <bean id="newBean" class="SubClass1"> 
</beans> 
<beans profile="xxx"> 
    <bean id="newBean" class="SubClass2"> 
</beans> 
관련 문제