http://donald-draper.iteye.com/blog/2326294
http://donald-draper.iteye.com/blog/2326185
总结:
从以上分析,可以看出RequestMappingHandlerMapping,主要做的工作是将Contoller的带RequestMapping方法,添加到
处理方法映射器和路径方法解决器中。
总结:
从上面我们可以看出,RequestMappingHandlerAdapter主要是解决请求的,会话,请求头部处理,数据的绑定等,然后从容器中,获取handlerMethod,处理业务逻辑,获取数据,并渲染视图,返回。
大概意思是说RequestMappingHandlerMapping会把Controller里面带有@RequestMapping
注解的方法都加到一个容器里面,然后RequestMappingHandlerAdapter根据里面的
自定义配置可以对经过这些方法的请求的数据做一些额外的处理。例如我想对带有@RequestMapping注解的方法的相应数据做一些处理,比如方法返回的都是实体对象类型的数据,我想配置把这些实体对象转换成json串再返回给前端,可以像如下这么配置:
class="xml"> <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>
需要看下适配器模式