我翻看源码发现Spring已经提供了HttpMessageConverter转换器,而且默认情况下是加载了 MappingJackson2HttpMessageConverter(json ~object转换的类)。只需要配置@RequestBody Greeting gree 即可使用。
一开始我认为是接不到传过来的json对象,测试过后发现问题是无法把json对象转换为pojo对象,定位好问题后我就开始总结原因发现可能是两种情况
1、spring默认没有加载MappingJackson2HttpMessageConverter(不知道具体加载方式)
2、MappingJackson2HttpMessageConverter加载后不能工作(不知道不工作原因)
一些列测试后 最后结果是缺少依赖包 导入ackson-mapper-asl和jackson-core-asl就行了
注解@ResponseBody可以将结果(一个包含字符串和JavaBean的Map),转换成JSON。由于Spring是采用对JSON进行了封装的jackson来生成JSON和返回给客户端,所以这里需要添加jackson的相关包。项目的pom.xml配置如下:3
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>1.4.2</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- <version>1.4.2</version>
- </dependency>
,再运行可以了。绕了一圈终于把问题解决了!