본문으로 바로가기
Spring에서 자주 하는 component-scan에 대한 설정이다.
이것을 왜 하는지 모르는 사람도 많이 보았다. servlet-context에 전체 스캔을 다 해버리고 한 곳에서 잘 되는데 왜 이것을 이렇게 설정을 해두었냐는 사람도 보았다. (물론 그렇게 해도 동작은 잘 하지만..... )
서블릿과 애플리케이션에 대한 분리는 인터넷이나 책에서 찾아서 공부를 하길 권장한다. ([1] 참조)

아래 xml을 보면 중요한 점은 디폴트 필터의 적용 여부와 include, exclude에 대한 차이이다.
디폴트 필터는 기본적으로 true인데, true일 경우 Repository, Component, Service, Controller등에 대한 모든 annotation에 대한 객체를 생성해버린다. 그래서 servlet에서는 이 설정을 끄고 Controller 객체에 대해서만 생성을 하도록 include 설정을 해놓았다.

application-context의 경우는 모든 객체에 대해 생성을 해야하므로 기본 필터를 사용하지만 controller에 대해서는 제외해야 하므로 controller를 exclude를 사용하였다.

* servlet-context.xml



* application-context.xml



Reference

[1] 스프링에서 말하는 서블릿 애플리케이션 컨텍스트가 서블릿 컨텍스트인가요? (https://slipp.net/questions/166)

저작자 표시 비영리 변경 금지
신고

댓글을 달아 주세요

티스토리 툴바