2016-07-18 5 views
1

나는이 문제에 익숙하다. bean override동일한 ID를 가진 콩을 피하는 방법?

2 콩은 동일하지만 패키지가 다르다. 콩 A가 콩 A를 무시했습니다. 나는 그 원인을 찾기 위해 많은 시간을 보냈습니다.

그래서 사건을 방지하고 싶습니다. 내 요청은 봄 예외를 던져 다음 종료 같은 경우 발생하는 경우 초기화 프로세스입니다.

+1

언뜻보기에 제목을 "같은 이드를 가진 곰을 피하는 방법"으로 잘못 읽었습니다. 아마도 무의미한 :-) –

+1

빈 이름과 함께 패키지 이름을 사용하지 않는 이유는 무엇입니까? – SMA

+0

'@ 한정자 '는 .. – z21

답변

0

스프링은 하나의 컨텍스트에서 동일한 ID를 가진 두 개의 빈을 가질 수 없습니다. 따라서 솔루션은 분명합니다. 다른 ID를 사용하십시오. 당신이 XML 컨텍스트를 사용하는 경우

이 있어야한다 :

<bean id="foo" class="what.ever.foo.Class" /> 

<bean id="bar" class="what.ever.package1.Class" /> 

당신이 주석 및 구성 요소 스캔 사용하는 경우

@Bean 
    public Foo foo() { 
     return new Foo(); 
    } 
    @Bean 
    public Bar bar() { 
     return new Bar(); 
    } 
:

@Component("foo") 
@Component("bar") 

주석을 기반으로 상황에 맞는 다른 방법 이름을 사용을

관련 문제