iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java RESTful框架怎么用
  • 741
分享到

Java RESTful框架怎么用

2023-06-17 05:06:21 741人浏览 泡泡鱼
摘要

本篇内容介绍了“Java RESTful框架怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Dropwizard诞生时间: 2011评分

本篇内容介绍了“Java RESTful框架怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Dropwizard

诞生时间: 2011
评分: 4.5/5

Dropwizard 提供了稳定成熟的Java库, 并封装成一个简单的轻量级的包。
Dropwizard 介于框架和库之间。它提供了一个开发WEB应用程序的全部所需。由于内置模块化,一个应用程序可以保持小而精干的特点,减少开发和维护的时间,减少负担。
Dropwizard 使用已有的 Jetty Http 库,嵌入到你的项目中,无需外部的server。所有的Dropwizard项目都有一个 main 方法来管理内建的 HTTP server.

链接

官方站点 GitHub 文档

优点

  • 快速的项目构建和启动

  • 模块化

  • 不可思议的快(至少根据内建的 metric 测得的结果)

  • Jetty for HTTP, Jersey for REST, 以及 Jackson for JSON

  • 也支持其它的库, 比如 Mustache, Logback, JDBI, Hibernate Validator, Guava, …

  • 使用Metrics支持监控

  • Main方法启动 Jetty server,可以容易地调试和维护

  • 社区力度强

缺点

  • Dropwizard文档是主要的知识来源,但谈不上优秀。你可能需要搜索和发掘第三方类库的文档。

  • 因为某些原因错误被当作普通文本, 如果你希望响应结果总是jsON,这可能有问题

  • 确保使用***的Dropwizard, 一些老版本使用了废弃的第三方库。 而且早期的Dropwizzard也很难升级

例子

package com.example.helloworld;

import io.dropwizard.Application;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
import com.example.helloworld.resources.HelloWorldResource;
import com.example.helloworld.health.TemplateHealthCheck;

public class HelloWorldApplication extends Application<HelloWorldConfiguration> {
    public static void main(String[] args) throws Exception {
        new HelloWorldApplication().run(args);
    }

@Override
    public String getName() {
        return "hello-world";
    }

@Override
    public void initialize(Bootstrap<HelloWorldConfiguration> bootstrap) {
        // nothing to do yet
    }

@Override
    public void run(HelloWorldConfiguration configuration,
                    Environment environment) {
        // nothing to do yet
    }

}

注解

个人不想为大的项目推荐这个框架。不过如果你想尝试的话,你不会失望的。主要是这个框架使用***的现代的JAVA WEB 组件,组装成一个简单易用的框架。
不幸的是这也带来了它的问题。 将这些库糅合起来可能导致不可预见的问题。这也是我为什么给它减掉0.5颗星,而没有评为满分5颗星。

Jersey

诞生时间: 2012 (Jersey 2.X)
评分: 5/5

Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。

链接

官方站点 gitHUB 文档

优点

  • 优秀的文档和例子

  • 快速

  • 超级容易的路由

  • 平滑的 JUnit 集成

  • 就个人而言, 当开发 RESTful service 时, JAX-RS 实现要好于 mvc 框架。

  • 可以集成到其它库/框架 (Grizzly, Netty). 这也可能是很多产品使用它的原因。

  • 支持异步链接

  • 不喜欢 servlet container? 使用Jersey的时候可以不用它们。

  • WADL, XML/JSON support

  • 包含在Glassfish中

缺点

  • Jersey 2.0+使用了有些复杂的依赖注入实现

  • 可能不是一件坏事。Jersey 1.X 使用较老的 JAX-RS 实现

  • 一大堆第三方库只支持 Jersey 1.X, 在 Jersey 2.X 不可用

例子

package org.glassfish.jersey.examples.helloworld;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("helloworld")
public class HelloWorldResource {
    public static final String CLICHED_MESSAGE = "Hello World!";

@GET
@Produces("text/plain")
    public String getHello() {
        return CLICHED_MESSAGE;
    }
}

注解

Jersey 是我的选择, 5颗星。

Ninja Web Framework

诞生时间: 2012
评分: 3.5/5

Ninja Web Framework是全栈的 java web framework。稳定, 快速, 可靠, 产品级.
它提供了开发,测试,发布,维护 RESTful web应用的一切(Servlets, Guice, JPA, Flyway migrations, Maven, etc.).
就像 DropWizzard, Ninja Web Framework 是一个集成的软件栈。你不必建立你自己的,只需使用 Maven archetype生成一个新的项目,导入到IDE中就可以开始编码了。

链接

官方站点 GITHUB 文档

优点

  • 快速的项目构建和启动

  • 模块化

  • XML, html, JSON渲染

  • 也支持其它的库 (如 Guice, Logback, Guava, etc.)

  • 很好的数据持久化和缓存

  • 不喜欢 servlet container? U可以选择你喜欢的容器

  • 如果根本就不喜欢容器,可以使用 standalone 模式, 使用Jetty作为一个自执行的jar

缺点

  • 同样,就像DropWizzard, 文档有但是不够好。我花了好长时间去了解它。这个框架也依赖很多其它的库,有时候想得到所需的信息很麻烦。

  • 不怎么出名,社区小。 有谣言说这个框架是由那些切换到Scala的 Play 2.X 用户创建的

例子

package controllers;

public class ApplicationController {     

public Result index() {

Person person = new Person();
        person.name = "John Johnson";

return Results.json().render(person);

}
}

注解

看起来不错,但是在它成熟之前我还是把它丢在一边吧。

Play Framework

诞生时间: 2011
评分: 4/5

使用Play Framework 很容易地创建,构建和发布 web 应用程序,支持 Java & Scala。它使用Akka, 基于一个轻量级的无状态的架构。它应该应用于大规模地低CPU和内存消耗的应用。

链接

官方站点 GITHUB 文档

优点

  • 易于开发

  • 快,但是没有其它的一些框架快

  • 基于 Netty, 支持非阻塞的 I/O. 并行处理远程调用的时候很优秀

  • 社区很大

  • 快速的项目构建和启动

  • 模块化

  • MVC

  • REST, JSON/XML, Web Sockets, non-blocking I/O

  • 只需刷新浏览器就可以看到***的改变

  • 支持Async

  • 有出版的书

缺点

  • 版本2.0 是最有争议的Java框架。 切换至Switch to Scala made some Java developers outraged.

  • 不向后兼容; Play 2.X 重写了

  • 号称轻量级,但有些臃肿

  • SBT构建工具. 号称 Maven 杀手, 但是从没有优秀到替换它。难以学习和配置

  • 非 servlet

  • Breaking changes across releases

例子

package controllers

import play.api._
import play.api.mvc._

class Application extends Controller {

def hello(name: String) = Action {
    Ok("Hello " + name + "!")
  }

}

注解

抱怨归抱怨,我还是一直喜欢和***这个框架。不幸的是,我只能给它4颗星。我坚信 基于JAX-RS的框架更适合 RESTful web services.

RestExpress

诞生时间: 2009
评分: 3/5

RestExpress是一个非容器的轻量级的 Netty HTTP栈的包装, 以便更容易地创建 Java RESTful services.
RestExpress 目标是支持***的 RESTful 实践。

链接

GITHUB

优点

  • 真正的微框架

  • ***的性能,快,可靠

  • XML/JSON

  • 最老的也是最稳定的 RESTful 框架之一

缺点

  • 没有文档

  • 几乎没有支持

  • 很小的社区

例子

package com.example;

import java.io.IOException;

import io.netty.handler.codec.http.HttpMethod;
import org.restexpress.RestExpress;

public class Main
{
    public static RestExpress startServer(String[] args) throws IOException
    {
        RestExpress server = new RestExpress();
        MyResource r = new MyResource();

server.uri("/myapp/myresource", r)
            .method(HttpMethod.GET)
            .noSerialization();

server.uri("/myapp/myresource", r)
            .method(HttpMethod.POST);

server.bind(8080);
        return server;
    }

public static void main(String[] args) throws Exception
    {
        RestExpress server = startServer(args);
        System.out.println("Hit enter to stop it...");
        System.in.read();
        server.shutdown();
    }
}

注解

尽管这个框架超级快,我也不想推荐它。文档缺乏以及没有支持使它成为一个欠佳的框架。看在速度的份上给它3颗星。

Restlet

诞生时间: 2005
评分: 4.5/5

Restlet 帮助Java程序员建立大规模的快速的符合 RESTful 架构模式的web api。
它提供了强大的路由和 filtering 系统。统一的client/server Java API. 满足所有主要的平台 (Java  SE/EE, Google AppEngine, OSGi, GWT, Android) 以及提供了无数的扩展以满足程序员的需求。
据我说知,它是***个 java RESTful web 框架。很多公司都在用它,但是你可能从未听说过它,好像它已经不可见了。

链接

官方站点 GITHUB 文档

优点

  • 强大

  • 企业级的框架

  • 多平台 Java SE, Java EE, Google Web Toolkit, Google AppEngine, Android, OSGi environments

  • 支持JAX-RS (就像 Jersey)

  • 大部分高级 RESTful 支持

  • 模块化

  • 支持其它库

  • 开发一直活跃

  • 智能的url绑定, 全功能的 URI 路由

  • 有相关的书籍

缺点

  • 非常陡峭的学习曲线

  • 关闭的社区,尽管 StackOverflow 上还是开放的

  • 不再流行,更多的是因为 Play Framework 和 Jersey

例子

public class Part03 extends ServerResource {

public static void main(String[] args) throws Exception {
        // Create the HTTP server and listen on port 8182
        new Server(Protocol.HTTP, 8182, Part03.class).start();
    }

@Get("txt")
    public String toString() {
        return "hello, world";
    }

}

注解

尽管这个框架还一直流行,考虑到它的年纪和当前的完成度,我不能给它5颗星。

Restx

诞生时间: 2013
评分: 3.5/5

Restx 是一个轻量级的,模块化的,特性众多的,超快的开源 Java REST 框架。

链接

官方站点 GITHUB 文档

优点

  • 快速,轻量级

  • 容易搭建

  • 真正的微框架

  • 模块化

  • 支持其它库

  • 支持MongoDB

缺点

  • 不友好的令人迷惑的文档。对于这类框架我期望能有好一点的文档

  • 太年轻

  • 目前还不支持异步Async

例子

@GET("/message/{id}")
    public Message sayHello(String id, // path param
                            String who // query param
                            ) {
        return new Message().setMessage(String.fORMat(
                "hello %s, it's %s",
                who, DateTime.now().toString("HH:mm:ss")));
    }
@POST("/message/{id}")
    public Message sayHello(String id, // path param
                            Message msg // body param
                            ) {
        return msg.setMessage(String.format(
                "%s @ %s",
                msg.getMessage(), DateTime.now().toString("HH:mm:ss")));
    }

注解

真心来讲我没有在这个框架上花费太多时间。不值得在另一个框架上花费太多精力,我意思是说,Java框架市场已经越来越碎片化了,就像 javascript 市场,应该停止这种趋势了。

spark Framework

诞生时间: 2011
评分: 3.5/5

不要和 Apache 的大数据框架 Spark 弄混, 这里的 Spark 框架是一个轻量级的 Java web 框架,用来进行快速的开发(50% Spark用户使用 Spark 创建 REST APIs)。 它受 Ruby 框架 Sinatra 启发。

它有一个不到1M的最小化的内核, 提供了所有基本的特性, 用来构建 RESTful 或者传统的 web 应用程序。

链接

官方站点 GITHUB 文档

优点

  • 快,轻量级

  • 优秀的快速原型

  • 易于搭建

  • 经常和angularJS搭配使用

  • 真正的微框架

  • 使用 Jetty

  • 可以用在容器中或者独立运行

缺点

  • 文档可以更好,它不适合初学者

  • 不适合大型项目

  • 社区小

例子

import static spark.Spark.*;

public class HelloWorld {
   public static void main(String[] args) {
      get("/hello", (req, res) -> "Hello World");
   }
}

注解

这个框架适合初始开发。主要用作小小项目或者原型。

“Java RESTful框架怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java RESTful框架怎么用

本文链接: https://www.lsjlt.com/news/287269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java RESTful框架怎么用
    本篇内容介绍了“Java RESTful框架怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Dropwizard诞生时间: 2011评分...
    99+
    2023-06-17
  • 怎么用Resty restful框架快速接入Spring
    这篇文章主要介绍“怎么用Resty restful框架快速接入Spring”,在日常操作中,相信很多人在怎么用Resty restful框架快速接入Spring问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎...
    99+
    2023-06-29
  • Restful框架有哪些优点
    这篇文章主要讲解了“Restful框架有哪些优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Restful框架有哪些优点”吧!拥有jfinal/activ...
    99+
    2024-04-02
  • Java Executor框架怎么用
    这篇文章主要介绍“Java Executor框架怎么用”,在日常操作中,相信很多人在Java Executor框架怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java Executor框架怎么用”的疑...
    99+
    2023-06-17
  • Java SSM框架怎么应用
    这篇文章主要介绍了Java SSM框架怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java SSM框架怎么应用文章都会有所收获,下面我们一起来看看吧。一、什么是SSM框架?SSM框...
    99+
    2023-07-05
  • java struts框架怎么使用
    要使用Java Struts框架,你需要按照以下步骤进行操作:1. 首先,在你的Java开发环境中创建一个新的Java Web项目。...
    99+
    2023-09-25
    java struts
  • java的udp框架怎么使用
    Java中使用UDP框架主要有两个步骤:创建UDP套接字和发送/接收数据。1. 创建UDP套接字:```// 创建UDP套接字DatagramSocket socket = new DatagramSocket();```2. 发送数据...
    99+
    2023-08-11
    java
  • java的Structs框架怎么应用
    要使用Struts框架,首先需要进行以下步骤:1. 下载Struts框架:你可以从官方网站下载最新的Struts框架。解压下载的文件...
    99+
    2023-09-14
    java Structs
  • Java中怎么使用Sinatra框架
    这篇文章主要讲解了“Java中怎么使用Sinatra框架”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中怎么使用Sinatra框架”吧!Sinatra 是一个微型的 Ruby 语言的...
    99+
    2023-06-17
  • Java中怎么使用Nutz框架
    使用Nutz框架在Java中进行开发可以按照以下步骤进行:1. 导入Nutz框架的相关依赖:在项目的构建文件(如Maven的pom....
    99+
    2023-08-24
    Java Nutz
  • java rpc调用框架怎么使用
    使用Java RPC调用框架可以按照以下步骤进行: 导入相关的依赖包:根据选择的RPC框架,导入相应的依赖包,例如使用Apach...
    99+
    2023-10-23
    java rpc
  • Java Jersey框架入门指南:从零开始构建RESTful API
    1. 概述: Java Jersey框架是一个用于构建RESTful Web服务的轻量级Java框架。它基于JAX-RS(Java API for RESTful Web Services)规范,提供了简单且强大的API,使您能够轻松...
    99+
    2024-02-27
    Java、Jersey、RESTful API、Web 服务
  • java怎么调用restful接口
    Java可以使用多种方式调用RESTful接口,以下是其中几种常见的方法:1. 使用Java原生的HttpURLConnection...
    99+
    2023-09-15
    java
  • Resty极简restful框架快速接入Spring
    目录RestyMaven的快照版相关链接Resty从最初开发到现在已经经历了近10个月时间,在github的star数即将进入400,在没有任何推广的情况,目前的情况还是比较可观的,...
    99+
    2024-04-02
  • 怎么在java中使用mybatis框架
    怎么在java中使用mybatis框架?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程...
    99+
    2023-06-14
  • 怎么在java中使用Spring框架
    怎么在java中使用Spring框架?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统...
    99+
    2023-06-14
  • 构建 RESTful API:Python 框架的最佳实践
    随着 Web 技术的发展,越来越多的应用程序需要提供 API 接口,以便其他程序可以通过网络与之交互。RESTful API 是一种广泛使用的 API 设计风格,它使用统一的资源标识符(URI)和标准的 HTTP 方法(GET、POST、...
    99+
    2023-10-06
    框架 api http
  • Java Jersey框架的最佳实践,让你的RESTful API更出色
    使用注解:Jersey框架提供了丰富的注解,用于简化RESTful API的开发。例如,@Path注解用于指定资源的路径,@GET、@POST、@PUT和@DELETE注解用于指定资源的HTTP方法,@Produces和@Consum...
    99+
    2024-02-27
    Java、Jersey、RESTful、API、最佳实践
  • java cxf框架有什么用
    CXF(Apache CXF)是一个开源的、高性能的、易于使用的Java开发框架,用于构建和部署Web服务。它提供了一套简单的编程模...
    99+
    2023-08-30
    java
  • Java中Apache Shiro安全框架怎么用
    这篇文章将为大家详细讲解有关Java中Apache Shiro安全框架怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Shiro简介:Apache Shiro是一个Java的安全(权限)框架。Sh...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作