转载请注明 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