zoukankan      html  css  js  c++  java
  • 几种支持REST的Java框架

    目前宣称支持REST的Java框架包括以下这些: 
    Restlet(http://www.restlet.org/) 
    Cetia4(https://cetia4.dev.java.net/) 
    Apache Axis2(http://http://ws.apache.org/axis2/) 
    sqlREST(http://sqlrest.sourceforge.net/) 
    REST-art(http://rest-art.sourceforge.net/

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

    Restlet,最新版本1.0.1 
    特点:完全抛弃了Servlet API,作为替代,自己实现了一套API。能够支持复杂的REST架构设计。 
    缺点: 
    1. 虽然也可以运行于Web容器中,但是难以利用Servlet和JSP等资源。因为需要另外学习一套API和概念,学习成本比较高。 
    2. 完全不支持服务器端的HTTP Session,强制完全基于无状态服务器模型来做开发。对于基于浏览器的应用来说,开发难度较高。 
    3. 自身没有包括与Spring的集成,可以使用第三方代码与Spring集成,集成难度较大。 
    4. 文档不是很丰富,大多比较简短,很多时候需要自己去读代码,或者到其wiki上去查找。 
    5. 没有内建的国际化支持。 
    优点: 
    1. 有内建的HTTP认证机制,不需要另外开发安全机制。 
    2. 灵活性较高,支持更多的REST概念,支持透明的内容协商,适合于开发更加强大的REST组件(不限于服务器端应用)。 
    3. 零配置文件,全部配置通过代码来完成。

    相关资源: 
    功能列表:http://www.restlet.org/about/features 
    简介:http://www.restlet.org/about/introduction 
    教程:http://www.restlet.org/documentation/1.0/tutorial 
    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. 目前尚处于刚刚起步的阶段,功能非常少。 
    2. 不是基于Servlet API,带来了额外的学习成本。

     

  • 相关阅读:
    Spring boot unable to determine jdbc url from datasouce
    Unable to create initial connections of pool. spring boot mysql
    spring boot MySQL Public Key Retrieval is not allowed
    spring boot no identifier specified for entity
    Establishing SSL connection without server's identity verification is not recommended
    eclipse unable to start within 45 seconds
    Oracle 数据库,远程访问 ora-12541:TNS:无监听程序
    macOS 下安装tomcat
    在macOS 上添加 JAVA_HOME 环境变量
    Maven2: Missing artifact but jars are in place
  • 原文地址:https://www.cnblogs.com/felixjia/p/3608683.html
Copyright © 2011-2022 走看看