Using CustomAutowireConfigure
2024. 11. 14. 19:51ㆍSpring Framework/Spring IoC
CustomAutowireConfigurer
는 BeanFactoryPostProcessor
로, Spring의 @Qualifier
애노테이션이 없어도 사용자 정의 qualifier 애노테이션 타입을 등록할 수 있도록 합니다.
import org.springframework.beans.factory.annotation.CustomAutowireConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Collections;
@Configuration
public class AppConfig {
@Bean
public CustomAutowireConfigurer customAutowireConfigurer() {
CustomAutowireConfigurer configurer = new CustomAutowireConfigurer();
// 사용자 정의 자격 애노테이션 등록
configurer.setCustomQualifierTypes(Collections.singleton(example.CustomQualifier.class));
return configurer;
}
}
설명
- CustomAutowireConfigurer 빈 등록:
customAutowireConfigurer()
메서드는CustomAutowireConfigurer
빈을 생성하고, Spring 컨테이너에 등록합니다. - setCustomQualifierTypes 메서드 사용:
setCustomQualifierTypes
메서드는example.CustomQualifier
와 같은 사용자 정의 qualifier 애노테이션을 설정합니다.Collections.singleton
을 통해CustomQualifier
클래스를 하나의 요소로 가지는 세트를 생성하고 이를 전달합니다.
AutowireCandidateResolver 작동 방식
AutowireCandidateResolver
는 자동 주입 후보를 다음 기준에 따라 결정합니다.
- 각 빈 정의의 autowire-candidate 속성: 특정 빈이 자동 주입 후보인지 여부를 설정할 수 있습니다.
- 디폴트 자동 주입 후보 패턴:
<beans/>
엘리먼트에서 설정할 수 있는 디폴트 자동 주입 후보 패턴이 있을 경우 이를 사용합니다. - @Qualifier 애노테이션 및 CustomAutowireConfigurer로 등록된 애노테이션:
@Qualifier
와 등록된 사용자 정의 자격 애노테이션을 확인하여 자동 주입 후보를 결정합니다.
자동 주입 후보가 여러 개인 경우
자동 주입 후보가 여러 개인 경우 primary
속성이 true
로 설정된 빈이 하나뿐이라면 해당 빈이 선택됩니다.
'Spring Framework > Spring IoC' 카테고리의 다른 글
Using @Value (0) | 2024.11.14 |
---|---|
Injection with @Resource (0) | 2024.11.14 |
Using Generics as Autowiring Qualifiers (0) | 2024.11.14 |
Using JSR 330 Standard Annotations (0) | 2024.11.14 |
Container Extension Points (3) | 2024.11.14 |