SpringMVC中 mvc: annotation-driven 的作用

一、的作用

Spring 3.0.x中使用了mvc:annotation-driven后,默认会帮我们注册默认处理请求,参数和返回值的类,其中最主要的两个类:DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter ,分别为HandlerMapping的实现类和HandlerAdapter的实现类,从3.1.x版本开始对应实现类改为了RequestMappingHandlerMapping和RequestMappingHandlerAdapter。

 

HandlerMapping的实现类的作用:

实现类RequestMappingHandlerMapping,它会处理@RequestMapping 注解,并将其注册到请求映射表中。

 

HandlerAdapter的实现类的作用:

实现类RequestMappingHandlerAdapter,则是处理请求的适配器,确定调用哪个类的哪个方法,并且构造方法参数,返回值。

 

当配置了mvc:annotation-driven/后,Spring就知道了我们启用注解驱动。然后Spring通过标签的配置,会自动为我们将扫描到的@Component@Controller@Service@Repository等注解标记的组件注册到工厂中,来处理我们的请求。

 

二、使用的场景:

如果在web.xml中servlet-mapping的url-pattern设置的是 /,而不是如.do。表示将所有的文件,包含静态资源文件都交给spring mvc处理。就需要用到了。如果不加,DispatcherServlet则无法区分请求是资源文件还是mvc的注解,而导致controller的请求报404错误。


        mvc-dispatcher
        /

基础的springmvc.xml的配置:


























 

你可能感兴趣的:(SpringMVC)