博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对Spring 的RestTemplate进行包装
阅读量:6713 次
发布时间:2019-06-25

本文共 1396 字,大约阅读时间需要 4 分钟。

Spring的RestTemplate及大地简化了REST Client的开发,但每次还要编写大量的模板代码,代码不够简洁。我对他进行了一次包装,采用接口来声明REST接口,使用Annotation对interface的方法进行标注。如下声明一个REST接口

//接口必须继承BaseRestClient,提供了一个setUrl的基本方法。public interface ITestRest extends BaseRestClient{    //声明一个REST方法,method是GET,在路径里面有个参数id,如:  http://localhost:8080/get/{id}。返回一个UserInfo对象,由Json反射过来。    @RestClient(method = HttpMethod.GET) UserInfo getUser(@PathParam(value = "id") String id); //声明一个REST方法,method用POST,除了路径里面的id,还有一个表单 @RestClient(method = HttpMethod.POST) UserInfo postUser(@PathParam(value = "id") String id,@FormBody UserForm form); //表单中含有文件 @RestClient(method = HttpMethod.POST,hasFile = true) UserInfo postUserWithFile(@PathParam(value = "id") String id,@FormBody UserFormWithFile form); }

声明Bean

@Bean    public ITestRest testRest(RestTemplate restTemplate){        ITestRest testRest= RestClientBuilder.newRestClient(ITestRest.class,restTemplate);        return  testRest;    }    @Bean public RestTemplate restTemplate(){ return new RestTemplateBuilder() .additionalMessageConverters(new MappingJackson2HttpMessageConverter()) .additionalMessageConverters(new FormHttpMessageConverter()).build(); }

调用方

@Autowired    ITestRest testRest;    ......    testRest.setUrl("http://localhost:8080/get/{id}");    UserInfo user=testRest.getUser("123456");

由于访问路径可能会变化,比如采用了集群,所以在调用前需要set一下,url放到ThreadLocal里面,线程安全。 

如果不变,可以在@RestClient声明中加上path指定访问地址 
github地址:

转载地址:http://owelo.baihongyu.com/

你可能感兴趣的文章
ansible普通用户su切换问题
查看>>
2017.10.1
查看>>
P1965 转圈游戏
查看>>
洛谷——P1187 3D模型
查看>>
温度传感器,ds18b20
查看>>
总结从python2.7和python3.0的语法差异
查看>>
PSP(4.13——4.19)以及周记录
查看>>
ecshop为什么删不掉商品分类
查看>>
spark学习笔记
查看>>
bzoj1941[Sdoi2010]Hide and Seek
查看>>
IT兄弟连 Java Web教程 经典面试题2
查看>>
利用setTimeoutc处理javascript ajax请求超时
查看>>
三、Java基础工具(1)_常用类——字符串
查看>>
文献管理与信息分析》第二讲作业
查看>>
java 遍历arrayList的四种方法
查看>>
根据不同的产品id获得不同的下拉选项 (option传多值)
查看>>
css3新增属性:多列(column)
查看>>
redis 主从配置和集群配置
查看>>
手机3D游戏开发:自定义Joystick的相关设置和脚本源码
查看>>
java 数组偶数排在奇数前面
查看>>