欢迎来到天天文库
浏览记录
ID:18225063
大小:1.31 MB
页数:15页
时间:2018-09-15
《springmvc关于json、xml自动转换的原理研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SpringMVC关于json、xml自动转换的原理研究视图配置省略.....pom中需要有以下依赖(Spring依赖及其他依赖不显示):org.codehaus.ja
2、cksonjackson-core-asl1.9.13org.codehaus.jacksonjackson-mapper-asl1.9.13这个依赖分别是json序列化的依赖。ok。我们在
3、Controller中添加一个method:@RequestMapping("/)@ResponseBodypublicMapmap=newHashMap();map.put("list",employeeService.list());returnmap;}直接访问地址:我们看到,短短几行配置。使用@ResponseBody注解之后,Controller返回的对象自动被转换成对应的json数据,在这里不得
4、不感叹SpringMVC的强大。我们好像也没看到具体的配置,唯一看到的就是*-dispatcher.那么spring到底是如何实现java对象到json对象的自动转换的呢?为什么转换成了json数据,如果想转换成源码分析本文使用的spring版本是4.0.2。 在讲解这个配置之前,我们先了解下Spring的消息转换机制。@ResponseBody这个注解就是使用消息转换机制,最终通过json的转换器转换成json数据的。HttpMessageCon
5、verter接口就是Spring提供的http消息转换接口。有关这方面的知识大家可以参考"参考资料"中的第二条链接,里面讲的很清楚。下面开始分析这句配置:这句代码在spring中的解析类是:在AnnotationDrivenBeanDefinitionParser源码的152行parse方法中:分别实例化了RequestMappingHandlerMapping,ConfigurableWebBindingInitializer,RequestMa
6、ppingHandlerAdapter等诸多类。其中RequestMappingHandlerMapping和RequestMappingHandlerAdapter这两个类比较重要。RequestMappingHandlerMapping处理请求映射的,处理@RequestMapping跟请求地址之间的关系。RequestMappingHandlerAdapter是请求处理的适配器,也就是请求之后处理具体逻辑的执行,关系到哪个类的哪个方法以及转换器等工作,这个类是我们讲的重点,其中它的属性me
7、ssageConverters是本文要讲的重点。私有方法:getMessageConverters从代码中我们可以,RequestMappingHandlerAdapter设置messageConverters的逻辑:1.如果节点有子节点message-converters,那么它的转换器属性messageConverters也由这些子节点组成。message-converters的子节点配置如下:8、c:message-convertersregister-defaults="true"> 2.message-converters子节点不存在或它的属性register-defaults为tru
8、c:message-convertersregister-defaults="true">
此文档下载收益归作者所有