반응형
Spring에서 자주 하는 component-scan에 대한 설정이다.
이것을 왜 하는지 모르는 사람도 많이 보았다. servlet-context에 전체 스캔을 다 해버리고 한 곳에서 잘 되는데 왜 이것을 이렇게 설정을 해두었냐는 사람도 보았다. (물론 그렇게 해도 동작은 잘 하지만..... )
서블릿과 애플리케이션에 대한 분리는 인터넷이나 책에서 찾아서 공부를 하길 권장한다. ([1] 참조)
아래 xml을 보면 중요한 점은 디폴트 필터의 적용 여부와 include, exclude에 대한 차이이다.
디폴트 필터는 기본적으로 true인데, true일 경우 Repository, Component, Service, Controller등에 대한 모든 annotation에 대한 객체를 생성해버린다. 그래서 servlet에서는 이 설정을 끄고 Controller 객체에 대해서만 생성을 하도록 include 설정을 해놓았다.
application-context의 경우는 모든 객체에 대해 생성을 해야하므로 기본 필터를 사용하지만 controller에 대해서는 제외해야 하므로 controller를 exclude를 사용하였다.
use-default-filters의 기본값은 true인데 true일 경우, @Component @Service @Repository @Controller와 같은 어노테이션을 자동 등록 처리해준다.
* servlet-context.xml
* application-context.xml
Reference
[1] 스프링에서 말하는 서블릿 애플리케이션 컨텍스트가 서블릿 컨텍스트인가요? (https://slipp.net/questions/166)
반응형
'Devlopment > Spring' 카테고리의 다른 글
[SpringSecurity] Method 레벨에서 AccessDeniedException 처리하기 (0) | 2017.02.07 |
---|---|
Spring Security custom expression (0) | 2017.02.01 |
Spring Security 관련 레퍼런스 정리 (0) | 2017.02.01 |
Jackson에서 null string 안 보이게 설정 (1) | 2016.08.12 |
JPA Hibernate 사용 중 ORA-00001: 무결성 제약 조건( ORA-00001 에러 (0) | 2016.06.07 |
Spring에서 Pageable, Valid 설정 유의 설정 (0) | 2016.05.23 |
QueryDSL (0) | 2016.05.17 |
Hibernate Dialect (ORA-00933 Pagable error) (0) | 2016.05.17 |
JPA, Hibernate 속성 정리 (0) | 2016.02.29 |
SpringBoot application.properties H2 DB설정 (0) | 2016.02.12 |