복붙노트

[SPRING] 봄 - 동일한 유형의 콩 2 개 주입

SPRING

봄 - 동일한 유형의 콩 2 개 주입

주입 된 필드를 마지막으로 만들 수 있도록 생성자 기반 주입을 좋아합니다. 나는 또한 context.xml을 단순화하기 때문에 주석 기반 주입을 좋아한다. 내 생성자를 @Autowired로 표시 할 수 있습니다. 동일한 유형의 매개 변수가 두 개인 매개 변수가없는 한 모든 것이 올바르게 작동합니다. 예를 들어 클래스가 있습니다.

@Component
public class SomeClass {
    @Autowired(required=true)
    public SomeClass(OtherClass bean1, OtherClass bean2) {
        …
    }
}

및 응용 프로그램 컨텍스트 :

<bean id="bean1" class="OtherClass" />
<bean id="bean2" class="OtherClass" />

SomeClass 클래스의 생성자에서 Bean ID를 지정하는 방법이 있어야하지만 설명서에서 찾을 수 없습니다. 가능한가, 아니면 나는 아직 존재하지 않는 해결책을 꿈꾸는가?

해결법

  1. ==============================

    1.@Autowired는 by-type입니다 (이 경우). @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?

    @Autowired는 by-type입니다 (이 경우). @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?

    public SomeClass(
        @Qualifier("bean1") OtherClass bean1, 
        @Qualifier("bean2") OtherClass bean2) {
        ...
    }
    

    (그 텍스트 아래 전체 예제입니다)

  2. from https://stackoverflow.com/questions/2153657/spring-inject-2-beans-of-same-type by cc-by-sa and MIT license