IT모아

스프링 컴포넌트 스캔(component-scan) 짚고 넘어가기 본문

Spring(스프링)

스프링 컴포넌트 스캔(component-scan) 짚고 넘어가기

아롱사태남 2016.01.02 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 에는

아래와 같이 명시되어 있더군요..



에휴 ㅋㅋㅋㅋㅋ

0 Comments
댓글쓰기 폼