2013-06-11 66 views
1

當我傳遞一個字符串對象類型到靜止服務調用字符串「響應」中包含其餘的URLRestTemplate返回類型

RestTemplate restTemplate = new RestTemplate(); 
String response = restTemplate.getForObject("xxxxx", String.class, new Object[]{}); 

的JSON表示如果我上面的代碼改變爲:

RestTemplate restTemplate = new RestTemplate(); 
MyObject response = restTemplate.getForObject("xxxxx", MyObject.class, new Object[]{}); 

響應的類型現在是MyObject。

這裏發生了什麼,當指定字符串類型時RestTemplate轉換爲Json,並在指定對象返回類型時轉換爲指定的對象?

回答

3

是的。基本上,RestTemplate會調用第一個參數中指定的URL。該調用以json的形式返回響應。然後它使用MyObject.classHttpMessageConverter將json轉換爲對象。

它使用註冊的HttpMessageConverters進行轉換,因此您的應用程序必須在應用程序中註冊了MappingJacksonHttpMessageConverter

+0

我無法在我的應用程序中找到任何對MappingJacksonHttpMessageConverter的引用,這是默認的轉換類型嗎? –

+1

yes ..'MappingJacksonHttpConverter'是默認添加的。在springource上閱讀[this](http://blog.springsource.org/2009/03/27/rest-in-spring-3-resttemplate/)博客文章 –