ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 컴포넌트 스캔(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 에는

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



    에휴 ㅋㅋㅋㅋㅋ

Designed by Tistory.