<mvc:annotation-driven />到底需不需要

在资料上看到这样一句话:要使用spring mvc中的@Controller注解,就必须要配置
但是我在springmvc中没有使用,程序也能正常运行,没问题,那么这句话是什么意思呢

这个在springmvc选中的配置不是不是必须的。这个注解驱动主要是配置RequestMappingHandlerMapping和RequestMappingHandlerAdapter。但是springmvc容器启动是会加载默认的DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter如图:图片说明。所以不配置也是不影响项目的启动的。但是这连个默认的方法又是过时的方法看源代码如图:图片说明图片说明。所以过时的方法虽然可用,但是我们一般会配置新的代替的方法。然后中又包含所代替的方法。所以不配置不会影响项目,但是我们一般都会配置。

context:component-scanmvc:annotation-driven/两个功能不一样。

context:component-scan 只做扫描注解包下bean的工作,让bean生效。在这个基础上配置jsp的视图解析其实就可以正常访问jsp视图
但是这时候,你无法实现如接收返回json数据、参数验证、统一异常等功能。

mvc:annotation-driven/ 标签的作用就在于此

启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射,不知道你说的正常运行有没有前后台跳转,之前没注意,都是直接加的

你加的那个是扫描并管理spring的bean的,加了@Controller@Service@Component等都是spring管理的bean,都是单例的

图片说明
这是我的配置文件,看有一些springmvc的教程也没写,也能正常跳转

注解扫描驱动,没这个用不了controller