Springmvc+RestFul部署

1、  SOAP VS Rest

Soap(simple object access protocol):严格意义上的信息传输协议。用于webservice把远程调用和返回封装成机器可读的格式化数据,一般是xml格式。但由于soap封装太多,又定义了一套wsdl(web Service description language)也遵循xml格式数据,用于描述哪个服务器提供服务、怎么找到以及该接口使用什么服务接口规范,简单来说就是用于发现服务。

Rest(Representational State Transfort): 形式上应该表述为客户端通过申请资源来实现状态的转换REST应该满足这样的特点:

1)客户端和服务器结构;

2)连接协议具有无状态性;

3)能够利用Cache机制增进性能;

4)层次化的系统;

5)按需代码。

简单来说,REST只是一种架构风格,而不是协议或标准。它面向资源,甚至连服务也抽象成资源,因为它和HTTP紧密结合,因为它服务器无状态。

REST与SOAP的区别

因为SOAP并不假定传输数据的下层协议,因此必须设计为能在各种协议上运行。即使绝大多数SOAP是运行在HTTP上,使用URI标识服务,SOAP也仅仅使用POST方法发送请求,用一个唯一的URI标识服务的入口。

2、  springmvc+spring构建rest服务

2.1)、maven构建项目

Next直到:

配置pom.xml,引入jar包依赖

3、创建跨域支持类

Web应用中前端JavaScript访问后端的REST服务默认是不能跨域的。比如a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。在项目中前端(客户端)ajax调用webservice服务出于安全考虑,不允许进行跨域调用。

在web.xml中配置拦截器,对所有进来的request进行跨域检查。

4、创建控制器:控制器内只接收/验证/封装数据,其余交给service处理。

使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

方法注解@ResponseBody 注解的再次说明该注解是通过请求头的带入的信息来 格式化对应的返回值的的!produces = "application/json; charset=utf-8"返回对象是一个UTF-8格式的 JSON 对象。
5、service接口
在控制器配置:

接口定义:

接口实现:

6、spring配置:在WEB-INF目录下

Webservice的实现在本项目中主要是解决移动/微信端调用内部服务,内部封装的也是SOAP。
7、测试服务接口

在应用中我们可以在js中通过URL地址调用并传入参数即可。结果以json格式返回。非常方便我们解析和处理。


posted on 2019-08-15 23:01  WellDone  阅读(130)  评论(0)    收藏  举报

导航