반응형
<context:component-scan base-package="??" use-default-filters="false">
<context:include-filter type="annotation" expression="??"/>
</context:component-scan>
xml 설정 파일을 살펴보다가 <context:component-scan>이 뭐하는 태그인지 궁금해서 찾아보게 되었다.
Component Scan은 XML에 매번 빈 등록을 하지 않고 클래스에 특정 어노테이션을 적용함으로써 자동으로 빈 등록이 되게끔 해준다.
다양한 옵션
- base-package: 패키지를 어디부터 스캔할지 지정하며 여러개 지정이 가능하다.
- use-default-filters: 디폴트 어노테이션 스캔 설정 (기본값: true, 스캔한다.)
- include-filter: 해당 어노테이션을 스캔 대상에 포함
- exclude-filter: 해당 어노테이션을 스캔 대상에서 제외
어노테이션
@Controller, @Service, @Repository, @Component는 stereotype 애노테이션으로, 고정되거나 일반적인 패턴이다.
예를 들어, @Controller가 선언된 클래스는 '이것은 컨트롤러로 사용하는 클래스!'라는 것을 알 수 있다.
component-bean은 위 네 가지 애노테이션으로 등록된 빈은 디폴트로 스캔해준다.
요즘엔 component-scan을 xml보단 java에서 어노테이션으로 정리한다고 한다.
다만 스프링 부트가 아닌 스프링 레거시 프로젝트를 사용하는 회사에서는 xml로 설정된 것이 많다고 한다.
참고
thswave.github.io/spring/2015/02/02/spring-mvc-annotaion.html
반응형
'Develop > Spring+JPA' 카테고리의 다른 글
[Spring] Interceptor (0) | 2021.01.29 |
---|---|
[Spring Boot] Request method 'DELETE' not supported (2) | 2021.01.20 |
@Qualitifier 편리하게 이용하기 (0) | 2020.12.29 |
IoC, DI, Container 개념 (0) | 2020.12.29 |
Java Spring 기초 개념 (0) | 2020.12.29 |