Program Club

봄 — 같은 종류의 콩 2 개 주입

proclub 2020. 12. 8. 20:14
반응형

봄 — 같은 종류의 콩 2 개 주입


나는 주입 된 필드를 만들 수 있기 때문에 생성자 기반 주입을 좋아합니다 final. 또한 주석 기반 주입을 좋아 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" />

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


@Autowired유형별입니다 (이 경우). spring docs@Qualifier 의 예제에 따라 이름으로 autowire하는 데 사용하십시오 .

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

참고 : 필드, 생성자 및 다중 인수 메서드에 적용 할 수있는 @Autowired (매개 변수 수준에서 한정자 주석을 통해 범위를 좁힐 수 있음)와 달리 @Resource는 단일 인수가있는 필드 및 빈 속성 setter 메서드에 대해서만 지원됩니다. 결과적으로 주입 대상이 생성자 또는 다중 인수 메서드 인 경우 한정자를 사용하십시오.

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

참고 URL : https://stackoverflow.com/questions/2153657/spring-inject-2-beans-of-same-type

반응형