[CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口
2015-02-26 21:36
274 查看
Writer:BYSocket(泥沙砖瓦浆木匠)
微博:BYSocket
豆瓣:BYSocket
Reprint it anywhere u want.
文章Points:
1、介绍RESTful架构风格
2、Spring配置CXF
3、三层初设计,实现WebService接口层
4、撰写HTTPClient 客户端,并实现简单调用
REST是REST之父Roy Thomas创造的,当时提出来了REST的6个特点:客户端-服务器的、无状态的、可缓存的、统一接口、分层系统和按需编码。其具有跨语言和跨平台的优势。
REST是一种架构风格。其描述性的状态包括资源数据的内容和表达格式(XML,JSON等)。请求其中一个资源:方为一个指定性和描述性的URI,经由HTTP将资源的表达从服务器转移到客户端,或者相反方向。
REST不是一种技术,也不是一个标准或者协议,它拥有标准:HTTP+URI+XML(JSON),来实现其要求的架构风格。
泥瓦匠的记忆宫殿:“REST其实就像万能规则一样。如果你遵循它的规则的话,就能得她提供给你的资源数据。”
泥瓦匠用的是Spring4.0.x和CXF3.0.x版本。有兄长说过让我用其他的轻量级的Web Service框架,我最后考虑了下还是用CXF。
1、第一步配置所需的依赖包jars
?
在以前2.x的CXF上,bug和配置上很复杂。3.0以后很方便,用了MAVEN后,就是直接拷贝下上面的代码放到pom.xml即可。
2、配置Spring文件
首先配置CXF所需的XSD地址,表死我们引用了这个结构定义。
?
然后泥瓦匠用配置核心的配置。在<beans></beans>直接加入所需要的cxf配置。
?
根据代码的备注,泥瓦匠想让大家记住几点重要性的点。
address=”/ipservice” 表示我们以后用此地址访问所提供的地址。
<jaxrs:serviceBeans><jaxrs:serviceBeans/> 之间加入我们要暴露出去的服务类。这里泥瓦匠以一个简单的注册类来提供。
jaxrs:extensionMappings 是表示我们需要支持的协议。
3、UserInfoController是我们需要完成的暴露服务类。下面泥瓦匠说一下初设计(这点请大家指点指点)。
初设计:
按着原来的SpringMVC的三层架构,我这边把原来的Controller层转为暴露在出来的接口服务类。自然View层也就没了。
UserInfoController的代码如下:
?
暴露的接口层,也可以用inteface类加实现类来完成。泥瓦匠觉得多此一举,兴许我大言不惭。
泥瓦匠总结如下:
@POST 表示HTTP的访问模式
@Path 表示访问路径
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 响应内容 MIME 类型
泥瓦匠还在上一篇写过了对报文的处理:JAXB
xml与javaBean的转换。具体请查阅。
“实践出真理。”拿出来遛一遛即可。泥瓦匠简单的用HTTPClient访问
核心代码如下:
?
运行后,控制台打印出如下结果:
客户端打印如下:
服务端获取结果如下:
Writer:BYSocket(泥沙砖瓦浆木匠)
微博:BYSocket
豆瓣:BYSocket
Reprint it anywhere u want.
微博:BYSocket
豆瓣:BYSocket
Reprint it anywhere u want.
文章Points:
1、介绍RESTful架构风格
2、Spring配置CXF
3、三层初设计,实现WebService接口层
4、撰写HTTPClient 客户端,并实现简单调用
介绍RESTful架构风格
REST是REST之父Roy Thomas创造的,当时提出来了REST的6个特点:客户端-服务器的、无状态的、可缓存的、统一接口、分层系统和按需编码。其具有跨语言和跨平台的优势。REST是一种架构风格。其描述性的状态包括资源数据的内容和表达格式(XML,JSON等)。请求其中一个资源:方为一个指定性和描述性的URI,经由HTTP将资源的表达从服务器转移到客户端,或者相反方向。
REST不是一种技术,也不是一个标准或者协议,它拥有标准:HTTP+URI+XML(JSON),来实现其要求的架构风格。
泥瓦匠的记忆宫殿:“REST其实就像万能规则一样。如果你遵循它的规则的话,就能得她提供给你的资源数据。”
Spring配置CXF
泥瓦匠用的是Spring4.0.x和CXF3.0.x版本。有兄长说过让我用其他的轻量级的Web Service框架,我最后考虑了下还是用CXF。1、第一步配置所需的依赖包jars
?
2、配置Spring文件
首先配置CXF所需的XSD地址,表死我们引用了这个结构定义。
?
?
address=”/ipservice” 表示我们以后用此地址访问所提供的地址。
<jaxrs:serviceBeans><jaxrs:serviceBeans/> 之间加入我们要暴露出去的服务类。这里泥瓦匠以一个简单的注册类来提供。
jaxrs:extensionMappings 是表示我们需要支持的协议。
3、UserInfoController是我们需要完成的暴露服务类。下面泥瓦匠说一下初设计(这点请大家指点指点)。
三层初设计,实现WebService接口层
初设计:按着原来的SpringMVC的三层架构,我这边把原来的Controller层转为暴露在出来的接口服务类。自然View层也就没了。
UserInfoController的代码如下:
?
泥瓦匠总结如下:
@POST 表示HTTP的访问模式
@Path 表示访问路径
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 响应内容 MIME 类型
泥瓦匠还在上一篇写过了对报文的处理:JAXB
xml与javaBean的转换。具体请查阅。
HTTPClient 客户端,并实现简单调用
“实践出真理。”拿出来遛一遛即可。泥瓦匠简单的用HTTPClient访问核心代码如下:
?
客户端打印如下:
服务端获取结果如下:
Writer:BYSocket(泥沙砖瓦浆木匠)
微博:BYSocket
豆瓣:BYSocket
Reprint it anywhere u want.
相关文章推荐
- [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口
- [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)
- 转载 [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(二)RESTful API实战笔记(接口设计及Java后端实现)
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
- 【WEB API项目实战干货系列】- 接口文档与在线测试(二)
- 深度学习Caffe实战(9)Windows 平台caffe用MATLAB接口实现训练网络和测试
- 【WEB API项目实战干货系列】- 接口文档与在线测试(二)
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
- QT4与VS2005 整合环境配置实战(测试OK)
- 活动目录实战系列十一(脚本实现用户登录显示信息)
- BDB仿SQL接口的实现(未经测试,仅作参考)
- 【软件测试自动化-QTP系列讲座 8】==自定义COM组件的实现 (二)activex dll生成篇==
- 【软件测试自动化-QTP系列讲座 7】== 自定义COM组件的实现(一)WSC篇 ==
- Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
- 基于 CIMPLE 接口的 CIM Provider 的实现及其性能测试
- DotNet企业级架构实战之5——基于接口的访问层实现
- 基于.NET平台的分层架构实战(五)——接口的设计与实现