`
iswangyg
  • 浏览: 2633 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Spring注解驱动 <mvc:annotation-driven/> 的理解

阅读更多

<mvc:annotation-driven/>相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean;

 

 

 

其中AnnotationMethodHandlerAdapter已经默认了4个HtrpMessageConvert, 如下:

StringHttpMessageConverter;

ByteArrayHttpMessageConverter;

SourceHttpMessageConverter;

XmlAwareFormHttpMessageConverter;

当然如果需要其他的信息转换可以自行配置,如下我的配置,当然有些是没有用到,这里只是一个事例:

 

    <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
 <bean id="mappingJacksonHttpMessageConverter"
  class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
  <property name="supportedMediaTypes">
   <list>
    <value>text/html;charset=utf-8</value>
   </list>
  </property>
 </bean>
    <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
    <bean id="byteArrayHttpMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"></bean>
    <bean id="bufferedImageHttpMessageConverter" class="org.springframework.http.converter.BufferedImageHttpMessageConverter"></bean>
    <bean id="sourceHttpMessageConverter" class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean>
    <bean id="xmlAwareFormHttpMessageConverter" class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"></bean>
   
 <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  <property name="messageConverters">
   <list>
    <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
       <ref bean="stringHttpMessageConverter"/>
       <ref bean="byteArrayHttpMessageConverter"/>
       <ref bean="bufferedImageHttpMessageConverter"/>
       <ref bean="sourceHttpMessageConverter"/>
       <ref bean="xmlAwareFormHttpMessageConverter"/>
   </list>
  </property>
 </bean>

 

 <!--
    这里如果启用这个驱动程序会出错的,因为annotation-driven包括【DefaultAnnotationMethodHandlerAdapter,AnnotationMethodHandlerAdapter】
  其中AnnotationMethodHandlerAdapter的默认配置没有 MappingJacksonHttpMessageConverter这个消息转换,而且启用改配后直接安照默认的配置转换信息
  因此会出错
 -->
 <!-- 开启注解
 <mvc:annotation-driven/>
 -->

分享到:
评论

相关推荐

    拦截器与冲突解决

    1. **配置顺序**:Spring MVC按照注册拦截器的顺序执行它们,如果`&lt;mvc:annotation-driven /&gt;`配置在拦截器之后,那么可能会导致拦截器无法正常工作,因为Spring可能已经处理了请求,而没有交给拦截器。 2. **命名...

    SpringMVC源码总结(三)mvc:annotation-driven和mvc:message-converters简单介绍

    `mvc:annotation-driven`是一个Spring MVC的XML配置元素,它简化了对注解驱动的控制器的支持。通过使用这个元素,我们可以启用Spring MVC自动扫描并处理带有`@Controller`注解的类,以及类中的`@RequestMapping`、`@...

    SpringMVC源码总结(二)mvc:mvc:annotation-driven背后的那些事

    首先,`mvc:annotation-driven`是一个XML配置元素,它简化了对Spring MVC应用中注解驱动功能的配置。通过添加这个元素,我们无需手动注册如`HandlerMapping`、`HandlerAdapter`、`ConversionService`、`Validator`等...

    (代码)SpringMVC第12讲:<mvc:annotation-driven/>

    首先,`&lt;mvc:annotation-driven/&gt;`的作用是自动配置Spring MVC,启用对处理方法注解的支持,如`@RequestMapping`、`@RequestParam`、`@ModelAttribute`等。通过这个元素,我们可以避免编写大量的XML配置,转而采用...

    Spring源码学习十一:SpringMVC-@RequestBody接收json数据报4151

    深入源码分析,`&lt;mvc:annotation-driven /&gt;` 是Spring MVC中用于启用注解驱动的配置元素,它会自动配置一些关键组件,包括消息转换器。`MvcNamespaceHandler` 是处理这个注解的命名空间处理器,而`...

    SPRING MVC3.2案例讲解---配置

    `mvc:annotation-driven`则是开启Spring MVC的注解驱动,支持我们在Controller方法上使用@RequestMapping等注解。 除了基本配置,我们还可以配置拦截器(Interceptor)、异常处理器(HandlerExceptionResolver)...

    SpringMVC中解决@ResponseBody注解返回中文乱码问题

    总的来说,解决SpringMVC中`@ResponseBody`注解返回中文乱码问题的关键在于正确配置`HttpMessageConverter`,确保其支持UTF-8编码,并将这些配置放在`&lt;mvc:annotation-driven&gt;`元素之前。通过上述方法,可以有效地...

    Spring的MVC 入门小例子,用到了注解驱动

    在这个配置中,`&lt;context:component-scan&gt;`扫描指定包下的注解组件,`&lt;mvc:annotation-driven/&gt;`启用注解驱动的MVC功能。 通过以上讲解,你应该对Spring MVC的注解驱动有了初步的理解。这个入门小例子可以帮助你...

    spring-mvc 注解方式xml配置

    在XML配置中,我们需要声明`DispatcherServlet`并配置`&lt;mvc:annotation-driven&gt;`以启用注解驱动: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    spring3.0 mvc 注解实现helloworld输出

    &lt;mvc:annotation-driven/&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/" /&gt; &lt;property name="suffix" value=".jsp" /...

    Spring MVC--2.入门程序

    &lt;mvc:annotation-driven/&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/"/&gt; &lt;property name="suffix" value=".jsp"/&gt; ...

    基于注解的 Spring MVC 简单入门

    而`&lt;mvc:annotation-driven&gt;`元素则启用了Spring MVC对注解的支持,如@RequestMapping等,让我们的控制器可以使用注解进行方法映射。 现在让我们了解一下注解在Spring MVC中的作用。`@Controller`注解标记一个类为...

    spring-mvc-4.2.xsd.zip

    例如,`&lt;mvc:annotation-driven&gt;`元素用于启用基于注解的控制器支持,这意味着Spring MVC会自动扫描并处理带有`@Controller`注解的类。而`&lt;context:component-scan&gt;`则用于扫描指定包下的所有类,自动发现带有`@...

    spring_MVC源码

    14. &lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /&gt; 15. 16. &lt;!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --&gt; 17. &lt;bean class="org....

    spring mvc基础

    -- 启用Spring MVC的注解驱动功能 --&gt; &lt;mvc:annotation-driven/&gt; &lt;!-- 视图解析器配置 --&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value...

    Spring_Mvc

    &lt;mvc:annotation-driven/&gt; &lt;!-- 配置处理器映射器 --&gt; &lt;bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/&gt; &lt;!-- 配置处理器适配器 --&gt; &lt;bean class="org...

    spring注解出现中文乱码

    - **修正方式**:根据Spring 3.0的规范,`mvc:annotation-driven`元素可以采用空元素的形式,即`&lt;mvc:annotation-driven/&gt;`。如果需要添加自定义的配置,可以使用`mvc:annotation-driven`标签加上相应的子元素。题目...

    spring-mvc的简单实现

    &lt;mvc:annotation-driven /&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/"/&gt; &lt;property name="suffix" value=".jsp"/&gt; ...

    spring MVC

    ### Spring MVC框架详解:Spring注解的运用与配置 #### 引言 Spring MVC作为Spring框架中的一个重要模块,提供了一套构建Web应用的声明式、灵活的架构。它基于DispatcherServlet,这是一种高度可配置的、面向接口...

    使用Maven构建Spring MVC项目的简单示例

    &lt;mvc:annotation-driven /&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/" /&gt; &lt;property name="suffix" value=".jsp" ...

Global site tag (gtag.js) - Google Analytics