반응형
Component
@ComponentScan : @Component가 붙은 클래스를 전부 찾아서 스프링 빈으로 등록 해주는 역할을 한다.
- 주의
컴포넌트 스캔을 사용하면@Configuration
이 붙은 설정 정보도 자동으로 등록되기 때문에excludeFilters
를 이용해서 설정 정보는 컴포넌트 스캔 대상에서 제외했다. 보통 설정 정보를 컴포넌트 스캔 대상에서 제외하지는 않지만 기존 코드를 최대한 남기기 위해 선택했다. - @Configuration 이 컴포넌트 스캔의 대상이 된 이유는
@Component
가 Configuration 코드에 붙어있기 때문이다.
package hello.core.order;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
/*
@ComponentScan(
basePackages = "hello.core.member",
excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
)
basePackage를 안주면 소스의 패키지인 hello.core 하위를 전부 search한다.
*/
@Configuration
@ComponentScan(
excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
)
public class AutoAppConfig {
}
컴포넌트 스캔 기본대상
컴포넌트 스캔은 @Component뿐만 아니라 다음과 같은 내용도 추가로 대상에 포함한다.
- @Component : 컴포넌트 스캔에서 사용
- @Controller :스프링 MVC 컨트롤러에서 사용
- @service : 스프링 비즈니스로직에서 사용
- @Repository : 스프링 데이터 접근 계층에서 사용
- @Configuration : 스프링 설정 정보에서 사용
반응형
'Java' 카테고리의 다른 글
[Spring] Option 처리 (0) | 2022.01.01 |
---|---|
[Spring] 의존관계 주입 방법 (0) | 2021.12.30 |
[Java] Lambda function 예제 (0) | 2021.12.28 |
[Spring] Configuration N SingleTon (0) | 2021.12.27 |
[Spring] SingleTon 단점 (0) | 2021.12.27 |