1. component-scan
- spring 2.5 버전에 출시
- 2.5 버전 이전엔 xml file 에 모든 bean 을 설정해야 했는데, component-scan 이 xml 내의 bean 설정 양을 줄여줬다
- @Component, @Repository, @Service, @Controller 어노테이션을 스캔한다
- @Autowired, @Qualifier 어노테이션도 해석
- component-scan 이 선언되어있다면 annotation-config 는 필요없음
2.annotation-driven
- annotation-driven 은 spring mvc 컴포넌트를 활성화
- annotation-driven 을 포함하지 않아도 component-scan을 사용하여 Bean을 생성한 경우 mvc application은 동작
- annotation-driven은 구성되지 않은 특정 빈을 구성하는데 추가 작업을 수행
- @Controller 에 요청을 하기 위해 필요한 HandlerMapping, HandlerAdapter 을 등록
- @Number로 숫자 필드 지원 , classPath에 Jackson이 있는 경우 JSON 쓰기 읽기를 지원 와 같은 작업 적용
3. annotation-config
- 어플리케이션 context에 이미 등록되어 있는 (xml에 선언돼있거나 package scanning 으로 검색된) 어노테이션 빈을 활성화
- 스프링 컨텍스트에 의해 생성 및 저장된 빈에 대해 @Autowired, @Qualifier 어노테이션을 해석
- component-scan 또한 같은 일을 하지만, annotation-config 는 빈을 찾아 등록해주진 않는다. 이미 등록이 끝난 bean 들을 활성화할 할 뿐이다.
※ annotation-config 만 설정에 잡혀있을 경우, Bean 이 스캔에 의해 자동으로 등록되지 않으므로 xml 에 Bean 설정을 해주어야 함. 현재 개발중인 배치서버 설정에 빈이 자동으로 잡히지 않아 찾아보니 annotation-config 설정만 잡혀있고, component-scan 혹은 annotation-driven 은 잡혀있지 않았음.
참고 및 해석 : https://javabeat.net/spring-mvc-component-scan-annotations/
'back > Spring Framework' 카테고리의 다른 글
[log4j] log4j.xml 설정 : Logger 위계구조, 로그 분리하기 (0) | 2019.12.19 |
---|---|
[Spring Fw] 스프링 빈의 스코프 그리고 멤버변수 (0) | 2019.12.18 |
[Spring Fw] Spring property 설정 (0) | 2019.08.27 |
[Spring fw] Transaction 설정 및 주의사항 : 예상치 못한 롤백이 이루어 지는 경우, 롤백이 되지 않는 경우 확인해봐야 할 것 (1) | 2019.08.04 |
[Spring Fw] POI(Excel lib) 를 사용하여 다운로드하기 (7) | 2019.07.15 |