[Spring]為什麼配置了掃描器就不需要配置註解驅動了
阿新 • • 發佈:2019-01-22
在Spring的核心配置檔案中,對註解掃描需要配置以下內容
<!-- 註解驅動 -->
<mvc:annotation-driven/>
<!-- 掃描器 (ps:如果有了掃描器,可以不加註解驅動) -->
<!-- base-package屬性是指明Controller在哪個包中 -->
<context:component-scan base-package="controller"></context:component-scan>
那麼為什麼配置了掃描器就不需要配置註解驅動了呢?
1><mvc:annotation-driven/>會自動註冊DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean
DefaultAnnotationHandlerMapping :負責掃描帶有@Controller註解的類,給此類設定對應的@RequestMapping
AnnotationMethodHandlerAdapter :負責掃描Controller類中的方法,給方法設定對應的@RequestMapping
2><context:component-scan base-package =""></context:component-scan>
掃描器會掃描帶有@Component@Service@Controller@Component等註解,並實現相應的操作,
因為這四個註解包含了@Controller,
所以會將Controller類和方法進行對映,不需要用<mvc:annotation-driven/>了