본문 바로가기
Develop/Spring+JPA

[Spring] <context:component-scan>에 대해

by 연로그 2021. 1. 7.
반응형
<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, @Componentstereotype 애노테이션으로, 고정되거나 일반적인 패턴이다.

예를 들어, @Controller가 선언된 클래스는 '이것은 컨트롤러로 사용하는 클래스!'라는 것을 알 수 있다.

component-bean은 위 네 가지 애노테이션으로 등록된 빈은 디폴트로 스캔해준다.

 

 

요즘엔 component-scan을 xml보단 java에서 어노테이션으로 정리한다고 한다.

다만 스프링 부트가 아닌 스프링 레거시 프로젝트를 사용하는 회사에서는 xml로 설정된 것이 많다고 한다.

 

 


참고

thswave.github.io/spring/2015/02/02/spring-mvc-annotaion.html

zorba91.tistory.com/249

반응형

'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