java rest 图_Java REST框架一览-程序员宅基地

技术标签: java rest 图  

【REST技术】在这个时代,一方面是计算机科学家们不断的试图提高计算机表示的抽象能力使之更好的为现实世界服务,使人们能够更简单的利用计算机,一方面却是复杂性的不断提高。易用相对于用户,但是把复杂性留给了程序员。

于是计算机科学家们一直在不停的想办法,力图降低程序员工作的复杂度。那么REST(representation tranfer state)技术就在这种背景下孕育而生。当今的Web服务属于大型分布式框架。Web 服务标准也受到复杂性恶魔的威胁,但是称作 REST 的替代策略承诺了更简单的方式

。REST 与全堆栈 Web 服务根本不同,主要原因有三个:

REST 的核心抽象是远程资源而不是远程过程调用。

REST 没有发明一个详尽的标准列表,而是采用现有的 Internet 标准,包括 HTTP、XML 和 TCP/IP。

REST 没有覆盖每个可能场景,而是覆盖了最常见的问题。

可以看出REST在力求简单的同时也能解决大部分的问题。其实,可以看到在IT界一个新的技术要被大众接受,大概必须做到下面几点1

名字琅琅上,比如AJAX,REST,这些名字都容易让人熟悉2 与旧有技术上要有许多不同或者创新,不能新瓶装旧酒。3

需要降低程序员的复杂度,提高生产效率,我想第三个才是最重要的因素把!

【Java REST框架一览

目前宣称支持REST的Java框架包括以下这些:

REST-art(

http://rest-art.sourceforge.net/

) 以下对这些框架进行了较为全面的分析。

Restlet,最新版本1.0.1 (已经更新到1.0.10和1.1m4,并开始整合Jetty、Mina、Grizzy、Spring等系统)

特点:

完全抛弃了Servlet API,作为替代,自己实现了一套API。能够支持复杂的REST架构设计。

缺点

1. 虽然也可以运行于Web容器中,但是难以利用Servlet和JSP等资源。因为需要另外学习一套API和概念,学习成本比较高。

2. 完全不支持服务器端的HTTP Session,强制完全基于无状态服务器模型来做开发。对于基于浏览器的应用来说,开发难度较高。

3. 自身没有包括与Spring的集成,可以使用第三方代码与Spring集成,集成难度较大。

4. 文档不是很丰富,大多比较简短,很多时候需要自己去读代码,或者到其wiki上去查找。

5. 没有内建的国际化支持。

优点:

1. 有内建的HTTP认证机制,不需要另外开发安全机制。

2. 灵活性较高,支持更多的REST概念,支持透明的内容协商,适合于开发更加强大的REST组件(不限于服务器端应用)。

3. 零配置文件,全部配置通过代码来完成。

相关资源

FAQ:

http://www.restlet.org/about/faq

Cetia4,最新版本1.0

特点

:基于Servlet API开发,可以运行于所有的Web容器中。

优点

1. 可以充分利用Servlet API和JSP等资源,需要额外学习的概念较少,学习成本较低。

2. 对于传统的Web应用,可以使用服务器端HTTP Session;对于Web服务类应用,不使用HTTP Session,基于无状态服务器模型做开发。

3. 自身包括了对于Web MVC的支持

,熟悉Web MVC框架的开发者很容易理解。还内建了参数映射、参数验证等等传统Web MVC框架所支持的功能。

4. 内建了自己特有的导航对象栈的概念,对于支持传统的Web应用的开发(基于浏览器的导航)非常有帮助。

5. 提供了JSP标签库,对于传统的基于HTML表单的Web开发非常有帮助。

6. 支持与SiteMesh相配合,由SiteMesh来支持页面布局的重用。

7. 内建有与Spring的集成,集成起来非常容易

8. 配置文件完全基于标准的web.xml,不需要额外的配置文件。大量使用默认配置,一般情况下足以满足常见的需求

9. 拥有很好的文档。

10. 有内建的国际化支持。

缺点

1. 没有内建的HTTP认证机制,需要自行开发安全机制

2. 对于内容协商的支持比较弱,仅支持HTML和XML格式的表现。需要加以扩展才能支持其他格式的表现。

相关资源

: 教程:

https://cetia4.dev.java.net/files/documents/5545/38989/cetia4_tutorial.pdf

Axis2,最新版本1.2

特点:同时支持SOAP和REST风格的Web Service

缺点:

1. 仅仅支持GET与POST方法。

2. 仅仅是以REST风格暴露出Web服务,数据格式仍然是包含SOAP封装的XML,不能使用更加有效的格式

3. 只支持同步的调用方式。

4. 仅仅提供了以SOAP方式暴露Web服务的最小化的支持,不支持全面的REST架构设计

相关资源:

简介:

http://ws.apache.org/axis2/1_2/rest-ws.html

sqlREST,最新版本0.3.1

特点:

1. 为任何可以通过JDBC访问的数据库提供Web服务访问接口,自动将REST风格的HTTP请求转换为相应的数据库SQL语句,并将数据库中的记录编码为XML格式传给客户端。是REST风格的HTTP请求到数据库中的数据的直接映射

2. 基于Servlet API开发。

缺点:

1. 因为是REST风格的HTTP请求到SQL语句的直接映射,因此强制使用以SQL和关系数据库为中心的数据建模设计方法,不支持面向对象的设计。灵活性很低,难以实现较为复杂的业务逻辑

2. 因为资源的定义仅限于数据库的表,难以实现更高层次的抽象,必然会导致非常细粒度的API。

应用的性能和可伸缩性都难以保证。

相关资源: 教程:

http://sqlrest.sourceforge.net/5-minutes-guide.htm

REST-art,最新版本0.2

特点:一个旨在替换复杂的SOAP框架的REST框架

,用来作为替代SOAP方便地发布Web服务的工具。不是基于Servlet API开发。

缺点:

1. 目前尚处于刚刚起步的阶段,功能非常少。

【Rest架构能否挽救Java

前段时间,国内资深Java咨询师Robbin的一篇文章

《Java已经过时了吗?》

次引发了业界对Java的关注。在企业应用领域,Java凭借在稳定性和安全性方面的优势仍然占据着主流位置。但在互联网领域,由于Web表现层开发需求

变化频繁,Java这类静态类型的语言不够敏捷,严重影响了开发的效率。越来越多的开发者选择采用PHP、ASP或者RoR替代Java。

REST软件架构是当今世界上最成功的互联网的

超媒体分布式系统。作为一种专门针对网络应用的设计和开发方式,它可以很好的降低开发的复杂性,提高系统可伸缩性和开发效率。目前一些支持REST的

Java框架已经存在,这些框架使得基于Java做REST设计和开发成为了一件很容易的事情。 REST的主要优势到底是什么?在未来,Java会加速拥抱REST,重新成为互联网Web开发的主流吗?

本专题将与您分享这方面的内容。

原文摘自:http://hi.baidu.com/zeorliu/blog/item/ca08c6f95cac745f252df2f0.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39787594/article/details/114204641

智能推荐

5个超厉害的资源搜索网站,每一款都可以让你的资源满满!_最全资源搜索引擎-程序员宅基地

文章浏览阅读1.6w次,点赞8次,收藏41次。生活中我们无时不刻不都要在网站搜索资源,但就是缺少一个趁手的资源搜索网站,如果有一个比较好的资源搜索网站可以帮助我们节省一大半时间!今天小编在这里为大家分享5款超厉害的资源搜索网站,每一款都可以让你的资源丰富精彩!网盘传奇一款最有效的网盘资源搜索网站你还在为找网站里面的资源而烦恼找不到什么合适的工具而烦恼吗?这款网站传奇网站汇聚了4853w个资源,并且它每一天都会持续更新资源;..._最全资源搜索引擎

Book类的设计(Java)_6-1 book类的设计java-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏18次。阅读测试程序,设计一个Book类。函数接口定义:class Book{}该类有 四个私有属性 分别是 书籍名称、 价格、 作者、 出版年份,以及相应的set 与get方法;该类有一个含有四个参数的构造方法,这四个参数依次是 书籍名称、 价格、 作者、 出版年份 。裁判测试程序样例:import java.util.*;public class Main { public static void main(String[] args) { List <Book>_6-1 book类的设计java

基于微信小程序的校园导航小程序设计与实现_校园导航微信小程序系统的设计与实现-程序员宅基地

文章浏览阅读613次,点赞28次,收藏27次。相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低学校的运营人员成本,实现了校园导航的标准化、制度化、程序化的管理,有效地防止了校园导航的随意管理,提高了信息的处理速度和精确度,能够及时、准确地查询和修正建筑速看等信息。课题主要采用微信小程序、SpringBoot架构技术,前端以小程序页面呈现给学生,结合后台java语言使页面更加完善,后台使用MySQL数据库进行数据存储。微信小程序主要包括学生信息、校园简介、建筑速看、系统信息等功能,从而实现智能化的管理方式,提高工作效率。

有状态和无状态登录

传统上用户登陆状态会以 Session 的形式保存在服务器上,而 Session ID 则保存在前端的 Cookie 中;而使用 JWT 以后,用户的认证信息将会以 Token 的形式保存在前端,服务器不需要保存任何的用户状态,这也就是为什么 JWT 被称为无状态登陆的原因,无状态登陆最大的优势就是完美支持分布式部署,可以使用一个 Token 发送给不同的服务器,而所有的服务器都会返回同样的结果。有状态和无状态最大的区别就是服务端会不会保存客户端的信息。

九大角度全方位对比Android、iOS开发_ios 开发角度-程序员宅基地

文章浏览阅读784次。发表于10小时前| 2674次阅读| 来源TechCrunch| 19 条评论| 作者Jon EvansiOSAndroid应用开发产品编程语言JavaObjective-C摘要:即便Android市场份额已经超过80%,对于开发者来说,使用哪一个平台做开发仍然很难选择。本文从开发环境、配置、UX设计、语言、API、网络、分享、碎片化、发布等九个方面把Android和iOS_ios 开发角度

搜索引擎的发展历史

搜索引擎的发展历史可以追溯到20世纪90年代初,随着互联网的快速发展和信息量的急剧增加,人们开始感受到了获取和管理信息的挑战。这些阶段展示了搜索引擎在技术和商业模式上的不断演进,以满足用户对信息获取的不断增长的需求。

随便推点

控制对象的特性_控制对象特性-程序员宅基地

文章浏览阅读990次。对象特性是指控制对象的输出参数和输入参数之间的相互作用规律。放大系数K描述控制对象特性的静态特性参数。它的意义是:输出量的变化量和输入量的变化量之比。时间常数T当输入量发生变化后,所引起输出量变化的快慢。(动态参数) ..._控制对象特性

FRP搭建内网穿透(亲测有效)_locyanfrp-程序员宅基地

文章浏览阅读5.7w次,点赞50次,收藏276次。FRP搭建内网穿透1.概述:frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。2.简单的图解:3.准备工作:1.一个域名(www.test.xyz)2.一台有公网IP的服务器(阿里云、腾讯云等都行)3.一台内网主机4.下载frp,选择适合的版本下载解压如下:我这里服务器端和客户端都放在了/usr/local/frp/目录下4.执行命令# 服务器端给执_locyanfrp

UVA 12534 - Binary Matrix 2 (网络流‘最小费用最大流’ZKW)_uva12534-程序员宅基地

文章浏览阅读687次。题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93745#problem/A题意:给出r*c的01矩阵,可以翻转格子使得0表成1,1变成0,求出最小的步数使得每一行中1的个数相等,每一列中1的个数相等。思路:网络流。容量可以保证每一行和每一列的1的个数相等,费用可以算出最小步数。行向列建边,如果该格子是_uva12534

免费SSL证书_csdn alphassl免费申请-程序员宅基地

文章浏览阅读504次。1、Let's Encrypt 90天,支持泛域名2、Buypass:https://www.buypass.com/ssl/resources/go-ssl-technical-specification6个月,单域名3、AlwaysOnSLL:https://alwaysonssl.com/ 1年,单域名 可参考蜗牛(wn789)4、TrustAsia5、Alpha..._csdn alphassl免费申请

测试算法的性能(以选择排序为例)_算法性能测试-程序员宅基地

文章浏览阅读1.6k次。测试算法的性能 很多时候我们需要对算法的性能进行测试,最简单的方式是看算法在特定的数据集上的执行时间,简单的测试算法性能的函数实现见testSort()。【思想】:用clock_t计算某排序算法所需的时间,(endTime - startTime)/ CLOCKS_PER_SEC来表示执行了多少秒。【关于宏CLOCKS_PER_SEC】:以下摘自百度百科,“CLOCKS_PE_算法性能测试

Lane Detection_lanedetectionlite-程序员宅基地

文章浏览阅读1.2k次。fromhttps://towardsdatascience.com/finding-lane-lines-simple-pipeline-for-lane-detection-d02b62e7572bIdentifying lanes of the road is very common task that human driver performs. This is important ..._lanedetectionlite

推荐文章

热门文章

相关标签