<mvc:annotation-driven />简介
如果觉得写的还可以,点个赞支持一下笔者呗!你的点赞和关注会让我更快更新哦。笔者会持续更新关于Java和大数据有关的文章
Spring使用了mvc:annotation-driven后,默认会帮我们注册默认处理请求,参数和返回值的类,其中最主要的两个类:RequestMappingHandlerMapping和RequestMappingHandlerAdapter。
- HandlerMapping的实现类的作用:
实现类RequestMappingHandlerMapping,它会处理@RequestMapping 注解,根据请求的 url、method 等信息查找相应的 Handler。并将其注册到请求映射表中。
- HandlerAdapter的实现类的作用:
实现类RequestMappingHandlerAdapter,则是处理请求的适配器处理器适配器,负责调用具体的控制器方法,对用户发来的请求来进行处理。确定调用哪个类的哪个方法,并且构造方法参数,返回值。
<mvc:annotation-driven />的作用
1.配置了default-serlvet-handler后,RequestMapping的映射会失效,需要加上annotation-driven的配置。
2.当SpringMVC中设置任何一个view-controller时,其他控制器中的请求映射将全部失效,此时需要在SpringMVC的核心配置文件中设置开启mvc注解驱动的标签。
<mvc:view-controllerpath="/hello"view-name="success"></mvc:view-controller><mvc:annotation-driven></mvc:annotation-driven>
mvc:annotation-driven会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。
3.默认底层会集成jackson进行对象或集合的json格式字符串的转换,所以当我们需要controller返回一个 javabean,list,map等数据的json对象时,可以设定<mvc:annotation-driven />。