CODEDRAGON ㆍDevelopment/Spring
<context:component-scan> 태그
· Component Scan을 지원하는 태그입니다.
· Bean이 될 수 있는 모든 Component들을 자동으로 찾아 Bean Container에 등록합니다.
· 단, 의존성 관계 등록은 따로 하지 않습니다.
· 특정 패키지 안의 클래스들을 스캔하고, Annotation을 확인 후 bean 인스턴스를 생성합니다. @Component @Controller @Service @Repository 등의 Bean 등록 Annotation이 존재해야 bean을 스캔한 후 생성할 수 있습니다
· @Autowired와 @Qualifier Annotation을 인식할 수 있습니다.
· @Component를 통해 자동으로 Bean을 등록하고, @Autowired로 의존관계를 주입 받는 어노테이션을 클래스에서 선언하여 사용했을 경우에는 해당 클래스가 위치한 특정 패키지를 Scan하기 위한 설정(<context:component-scan> 태그)을 스프링 설정 XML에 해주어야 합니다.
· component-scan을 선언했다면 context:annotation-config를 선언할 필요가 없습니다.
· component-scan과 수동 DI(setter, contructor)는 혼용해서 사용할 수 있습니다.
패키지명 이후의 하위 패키지를 검색해 @Component 어노테이션을 포함하는 모든 클래스를 Bean으로 자동 등록해 줍니다.
<context:component-scan base-package="packagename" /> |
<context:component-scan base-package="codedragon.di.annotation" /> |
<context:include-filter> & <context:exclude-filter>
<context:include-filter>태그와 <context:exclude-filter>태그를 같이 사용하면 자동 스캔 대상에 포함시킬 클래스와 포함시키지 않을 클래스를 구체적으로 명시할 수 있습니다.
<!-- 모든 Bean들을 스캔해서 등록합니다. --> <context:component-scan base-package="com.tistory.com.SpringBBS"/> <mvc:annotation-driven></mvc:annotation-driven> |
use-default-filters="false"속성은 expression에 지정한 타입만 include 시켜줍니다.
<!-- Controller 타입의 Bean만 스캔해서 등록합니다. --> <context:component-scan base-package="com.tistory.com.SpringBBS" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <mvc:annotation-driven></mvc:annotation-driven> |
<!-- Controller 타입을 제외한 모든 Bean들을 Root Context에서 로딩합니다. --> <context:component-scan base-package="com.tistory.com.SpringBBS"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> |
'Development > Spring' 카테고리의 다른 글
ERROR-Failed to instantiate SLF4J LoggerFactory Reported exception: (0) | 2019.12.01 |
---|---|
AOP 네임스페이스 추가 하기 (0) | 2019.11.22 |
Interceptor 수행 도식도 - 단일 interceptor 수행, 다중 interceptor 수행 (0) | 2019.10.31 |
pom.xml를 통해 Spring 프레임워크 설치하기 (0) | 2019.10.13 |
IoC 도식도 (0) | 2019.10.01 |