在 RESTful接口 盛行的现在, 让接口返回 JSON 格式的字符串,已经成为了大家几乎共同的选择。
之前的项目,通过 spring 来实现了 RESTful,接口返回的就是 JSON的。而且,我一直以为,只要在spring的xml配置文件中开启了
之后,系统就会自动加载 MappingJackson2HttpMessageConverter 这个用于将 HashMap
、List
、POJO
对象转换为 JSON 的 message converter的。
但是,今天自己在新建一个项目之后,按照上面的配置,却怎么也不行。后来看了一下源码,才发现问题所有:
从上面这篇blog中,可以看出里面已经有了介绍了。但我还是忘了这一点,导致走了弯路。今天决定看一下源码,增加一下印象,避免以后再走弯路。
具体可以参考以下源码 (RequestMappingHandlerAdapter):
最重要的是最后这一句:this.messageConverters.add(new AllEncompassingFormHttpMessageConverter())
,
其中,AllEncompassingFormHttpMessageConverter 的实现为:
相信大家看到这里的时候,就明白了吧。 : )