-
스프링 컴포넌트 스캔(component-scan) 짚고 넘어가기Spring(스프링) 2016. 1. 2. 11:25반응형
2015년..시간 진짜 빨리 지나갔네요 벌써 2016년이라니..
새해 복 많이 받으세요 ^^
오늘도 기초 공부중 짚고 넘어갈게 있어서 정리해보는 겸 글을 올립니다 ㅎㅎ
그냥 흔히들 사용하고 있는 어노테이션을 이용한 자동 스캔 인데요
스프링 2.5 부터는 <context:component-scan> 태그를 추가하면 스프링은 지정한 패키지에
@Component 어노테이션이 적용되어 있을경우 클래스를 자동으로 빈으로 등록하는 기능을
제공 하고 있는데요
좀더 자세히 짚고 넘어가자면
<context:component-scan> 는 다음과 같이 BeanPostPRocessor를 등록해 줍니다
- RequiredAnnotaionBeanPostProcessor
- AutowiredAnnotaionBeanPostProcessor
- CommonAnnotaionBeanPostProcessor
- ConfigurationClassPostProcessor
여기서 궁금증이 생기더군요 @Controller 가 등록되어 있는 클래스에서 *.do 등으로 맵핑을 할때
@Component를 등록해주지 않았는데 NoSuchBeanDefinitionException 를 왜 예외를 발생시키 않았을까?
의외로 답은 가까운곳에 있더군요.. 기초가 중요하다는것을 여기서 다시한번 느끼게 되었습니다.
스프링에서는 <context:component-scan>에 base-package 를 제공하고 있습니다
그래도 아직 의아한것은 해당 클래스 파일에는 @Component 가 등록되어 있지 않은데
어떻게 작동되는것이지?라고 생각이 들어서 구글링을 해본결과 @Controller 에는
아래와 같이 명시되어 있더군요..
에휴 ㅋㅋㅋㅋㅋ
반응형'Spring(스프링)' 카테고리의 다른 글
스프링 Log4j 다루기 (0) 2016.04.13 스프링 ApplicationContext 동작방식 (0) 2015.12.31 스프링 url-pattern 설정(/ 와 *.) 차이에 대한 개념!! (0) 2015.12.01 스프링 viewResolver (0) 2015.09.25 스프링 @ResponseBody 어노테이션 (0) 2015.09.15