학습(구)/Spring 요약
Spring - 자동 Bean 등록
잉아당
2020. 10. 16. 00:22
728x90
Bean 객체의 수가 많을 수록 등록하기 어려우므로 @Component와 @ComponentScan 어노테이션을 사용하여 Bean 등록을 자동화 시킵니다.
자동화 할 객체들에 대해서 @Component어노테이션을 지정하는데 이때 속성값에 식별자를 주면 해당 식별자가 객체의 식별자가 됩니다.
@ComponentScan의 basePackages속성에 명시된 패키지와 그 하위 패키지에서 @Component 어노테이션이 지정된 객체들에 대해 검색하고 객체를 생성하게 됩니다.
@ComponentScan과 @Componenet를 사용할 때 명시적으로 특정 대상에 대하여 스캔 대상에서 제외시킬 수 있습니다.
excludeFilter속성을 사용하여 구현하며 그 값으로 @Filter를 사용합니다.
type = FilterType.REGEX, pattern = "정규표현식"
type = FilterType.ASPECTJ, pattern = "aspectj식"
type = FilterType.ANNOTATION, classes = "어노테이션클래스"
type = FilterType.ASSIGNED_TYPE, classes = "특정 타입 및 하위타입"
자동으로 @Component를 사용하여 등록할 수 있지만 해당 객체에 대하여 수동으로 등록할 수 있으며 이때 수동이 우선시 됩니다.
이 경우에 @Qualifier어노테이션을 사용하여 명시적으로 이름을 설정해 모두 사용이 가능합니다.