转载请注明 http://xuantan.iteye.com/admin/blogs/1826334
利用androidannotations的Rest注解替换手工建立Spring Android RestTemplate对象,不仅可以减少很多代码,同时使工程结构更简洁、严谨,利于复用。
自己构造RestTemplate的原生写法:
HttpHeaders requestHeaders = new HttpHeaders();
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(acceptableMediaTypes);
HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
ResponseEntity<User[]> responseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, User[].class);
利用androidannotations的Rest注解替换后的代码:
...
@RestService
RestApiService restApiService;
...
...
ResponseEntity<User[]> responseEntity = restApiService.getByStatus();
RestApiService的代码为:
package com.taobao.together.service;
import java.util.List;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import com.googlecode.androidannotations.annotations.rest.Get;
import com.googlecode.androidannotations.annotations.rest.Rest;
import com.taobao.together.common.model.User;
/**
* 类说明
* @author xuantan.zym
* @version V1.0 创建时间: 2013-3-8 下午2:33:18
*/
@Rest(rootUrl = "http://10.0.2.2:8080/together/api", converters = { MappingJackson2HttpMessageConverter.class })
public interface RestApiService {
@Get("/user/getByStatus.do?status=1")
ResponseEntity<User[]> getUsersByStatus();
}
相关参考:
https://github.com/excilys/androidannotations/wiki/Rest-API