component-scan 에 대해서
- 작성자 :
- 장*정
- 작성일 :
- 2009-09-15 19:47:56
- 조회수 :
- 4,310
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
게시판 예제에 dispatcher-servlet.xml 보면 설정이 이렇게 되있는데요..
<context:component-scan base-package="egovframework">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
........
질문:
include-filter 와 exclude-filter 차이가 뭔지요?
그리고 자동으로 controller 찾는데..controller 여러개 있을경우에는 어떻게 하나요?
<context:component-scan base-package="egovframework">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
........
질문:
include-filter 와 exclude-filter 차이가 뭔지요?
그리고 자동으로 controller 찾는데..controller 여러개 있을경우에는 어떻게 하나요?
A
안녕하세요.. 장태정님..
우선 component-scan은 Spring 2.5(JDK 1.5)에서 지원하는 annotaion 기반의 설정을 위한 것입니다.
즉, 이전에는 spring 서비스에 대하여 xml 설정 등을 통해 등록을 해주어야만 사용할 수 있는 것을 간단하게 클래스에 annotation을 지정하므로서 자동으로 설정이 되도록 지원하는 것입니다.
이때에 자동으로 설정이 되기 위해서는 필수적으로 component-scan를 통해 설정 정보를 읽을 수 있도록 지정해 주어야 합니다.
이 지정을 하면서 include-filter 및 exclude-filter를 통해 특정 annotation을 포함시키거나(위의 예에서는 Controller) 포함시키지 않을 수 있습니다.
include와 exclude가 포함 또는 미포함을 지정하는 것입니다.
그리고 Controller는 하나만 있어야 되는 것이 아니기 때문에 여러 개를 사용하실 수 있습니다. 위 include-filter 부분에 Controller를 포함시켰기 때문에 Controller annotation이 표시된 클래스들을 모두 Controller로 지정하도록 되어 있습니다..
그럼. 남은 하루도 즐거운 하루 되십시오.
감사합니다.
우선 component-scan은 Spring 2.5(JDK 1.5)에서 지원하는 annotaion 기반의 설정을 위한 것입니다.
즉, 이전에는 spring 서비스에 대하여 xml 설정 등을 통해 등록을 해주어야만 사용할 수 있는 것을 간단하게 클래스에 annotation을 지정하므로서 자동으로 설정이 되도록 지원하는 것입니다.
이때에 자동으로 설정이 되기 위해서는 필수적으로 component-scan를 통해 설정 정보를 읽을 수 있도록 지정해 주어야 합니다.
이 지정을 하면서 include-filter 및 exclude-filter를 통해 특정 annotation을 포함시키거나(위의 예에서는 Controller) 포함시키지 않을 수 있습니다.
include와 exclude가 포함 또는 미포함을 지정하는 것입니다.
그리고 Controller는 하나만 있어야 되는 것이 아니기 때문에 여러 개를 사용하실 수 있습니다. 위 include-filter 부분에 Controller를 포함시켰기 때문에 Controller annotation이 표시된 클래스들을 모두 Controller로 지정하도록 되어 있습니다..
그럼. 남은 하루도 즐거운 하루 되십시오.
감사합니다.