详解RequestMappingHandlerMapping和RequestMappingHandlerAdapter

本文详细介绍了Spring MVC框架中的RequestMappingHandlerMapping和RequestMappingHandlerAdapter组件的作用。前者负责收集带有@RequestMapping注解的方法并进行映射,后者则处理请求、会话、请求头部,并负责数据绑定及视图渲染等工作。此外,还提供了如何配置以实现数据格式转换的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[url]http://donald-draper.iteye.com/blog/2326294[/url]
[url]http://donald-draper.iteye.com/blog/2326185[/url]

总结:
从以上分析,可以看出RequestMappingHandlerMapping,主要做的工作是将Contoller的带RequestMapping方法,添加到处理方法映射器和路径方法解决器中。

总结:
从上面我们可以看出,RequestMappingHandlerAdapter主要是解决请求的,会话,请求头部处理,数据的绑定等,然后从容器中,获取handlerMethod,处理业务逻辑,获取数据,并渲染视图,返回。

大概意思是说RequestMappingHandlerMapping会把Controller里面带有@RequestMapping注解的方法都加到一个容器里面,然后RequestMappingHandlerAdapter根据里面的自定义配置可以对经过这些方法的请求的数据做一些额外的处理。例如我想对带有@RequestMapping注解的方法的相应数据做一些处理,比如方法返回的都是实体对象类型的数据,我想配置把这些实体对象转换成json串再返回给前端,可以像如下这么配置:
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="webBindingInitializer"><!-- 日期绑定 -->
<bean class="com.qlk.cloud.baymax.common.utils.BindingInitializer"/>
<!-- <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="conversionService">
<bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean"></bean>
</property>
</bean> -->
</property>
<property name="messageConverters">
<list>
<ref bean="stringHttpMessageConverter"/>
<ref bean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>

<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>

<!-- 处理JSON数据转换的 -->
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<!-- 为了处理返回的JSON数据的编码,默认是ISO-88859-1的,这里把它设置为UTF-8,解决有乱码的情况 -->
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>


[color=red][size=large]需要看下适配器模式[/size][/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值