背后做了什么
在Spring中,我们可以使用注解来减少xml配置文件的配置,如可以使用@Controller,@Autowired,
@RequestMapping,@Service等等;
在需要使用以上注解的时候,我们需要在xml配置文件中写上:
<context:component-scan base-package="..."/>
有时候写上下面的注解就行:
<mvc:annotation-driven/>
貌似它们的作用有时候是重合的?写上这两个注解的时候背后各自都做了什么?网上描述这两个配置资料的
太乱了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
他们的作用不重合。
context:component-scan
的作用是扫描对应的 base-package,将 base-package 及其子包中被@Component
、@Controller
、@Service
、@Repository
等注解的类,注册到为 Spring Context,即在上下文环境中注册一个这样的 Bean,这些 Bean 为 Spring MVC 提供了最基础的支持。而
<mvc:annotation-driven/>
是为 MVC 提供额外的支持,参考 Spring 的官方文档,<mvc:annotation-driven/>
最主要的作用是注册HandlerMapping
(实现为 DefaultAnnotationHandlerMapping) 和HandlerAdapter
(实现为 AnnotationMethodHandlerAdapter) 两个类型的 Bean,这两个 Bean 为@Controllers
(所有控制器) 提供转发请求的功能。还有一些其他的为 MVC 提供的功能:更多细节请参考官方文档。