본문 바로가기

SpringFramework Core - I. IoC 컨테이너/9. 어노테이션 기반의 컨테이너 설정

9.6. CustomAutowireConfigurer 사용하기

원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-custom-autowire-configurer

 

 

CustomAutowireConfigurer는 BeanFactoryPostProcessor이다. CustomAutowireConfigurer는 스프링의 @Qualifier 어노테이션이 붙지 않았더라도 여러분의 커스텀한 수식자 어노테이션 타입들을 등록할 수 있게 해준다. 다음 예시는 CustomAutowireConfigurer의 사용법을 보여준다.

<bean id="customAutowireConfigurer"
      class="org.springframework.beans.factory.annotation.CustomAutowireConfigurer">
    <property name="customQualifierTypes">
        <set>
            <value>example.CustomQualifier</value>
        </set>
    </property>
</bean>

AutowireCandidateResolver는 autowire 후보들을 다음과 같이 결정한다.

  • 각 bean 정의의 autowire-candidate 값
  • <beans/>요소에서 사용가능한 default-autowire-candidates 패턴들
  • @Qualifier 어노테이션들과 CustomAutowireConfigurer를 통해 등록된 커스텀한 어노테이션들

여러 bean들이 autowire의 후보가 될 때는 다음과 같이 "최우선순위"가 결정된다. 만약 후보들 가운데 primary 속성이 true인 bean 정의가 정확히 하나 있다면, 그것이 선택되는 것이다.