首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring restTemplat 惯用基本用法总结

2013-10-18 
Spring restTemplat 常用基本用法总结前言由于架构改造,以及程序的通用性,现在工程所以基础数据CURD操作,

Spring restTemplat 常用基本用法总结
前言

由于架构改造,以及程序的通用性,现在工程所以基础数据CURD操作,以及基本业务逻辑,均采用Api形式。而调用Api的工程会对数据进行进一步的加工处理、以及错误异常的抛出。
现在描述一下RestTemplate的几个常用的用法。

Spring RestTempalte 示例

配置文件

按如下方式在springBasic.xml中添加RestTemplat的配置;



为了方便,可以将restTemplat在一个父类中初始化,所有使用restTemplat的类可以继承该父类

如下

说明:
@PathVariable(value="uid"),因为此参数可以从url中取得,所以我们可以用@PathVariable标签解析url中参数值,(value="uid")代表将名字为uid的值解析出来付给uid这个变量,类型为Long;
当然我们这时候也可以在方法里面这样写:Long uid = requet.getParameter("uid");这是最传统的方式,适合少量参数;
也可以直接在方法头这么写public ModelMap getManageUserInfo(ModelMap modelMap, Long uid, HttpServletRequest request)
或者这么写public ModelMap getManageUserInfo(ModelMap modelMap, @RequestParam("uid",required="false")Long uid, HttpServletRequest request);这种写法是用@RequestParam标签代替了上面的Long uid = requet.getParameter("uid");同时,required = false代表,这个参数是非必须的,有没有都可以,不会出现nullPoint异常,这也是这个标签的一个优点。

但是以上这些都不是最好的,因为当参数很多事,我们一个个传之后继续解析是不是会被累死?或者我们要把Api方法中的方法头写的多么长呢?

所以我们因为以上方式,我们要将参数整理为对象传过去,这样就可以避免以上问题。
注意:@ResponseBody这个标签代表要返回数据类型,一定不要忘记。

Api示例:


Api调用示例:




说明:
1.这几个方法说明使用restTemplate的返回类型和Api定义的类型有关;
2.注意:@ResponseBody这个标签代表要返回数据类型,一定不要忘记。
3.假如Api中有声明请求方法为get/post,则,我们只能使用跟其对应的方法;
例如:testInt()方法在Api中声明为get、则我们只能使用对应的get请求;
4.在有很多参数时,我们可以先把参数序列化为json形式,然后使用postForObject;然后将其参数拼装到url中,Student student1 = restTemplate.postForObject("http://localhost:8080/test/voReturn.json" + "?student=" + stu, entity, Student.class); ;我们在Api中拿到参数后反序列化为对应的Vo;
注意:在反序列化过程中,我们会遇到有些字段为null无法转换的情况,所以这时最好写一个null的转换器。尤其类型为int时,无法自动处理此情况,那么可以借助转换器处理。

遇到问题:今天request.getPetemper("aa"),无法获取数据值,这个原因有待追查。

总结:
以上几个方法基本可以使用restTempalate进行工作了,后续会对原理,以及其他方法做出总结。

热点排行