91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java RESTful框架怎么用

發布時間:2022-01-06 22:29:47 來源:億速云 閱讀:212 作者:iii 欄目:編程語言

本篇內容介紹了“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框架怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

团风县| 桑日县| 吴忠市| 哈密市| 井冈山市| 宜良县| 尼勒克县| 运城市| 和顺县| 和平区| 苗栗市| 宜良县| 南京市| 黔南| 龙州县| 高安市| 宝山区| 汉阴县| 龙海市| 永年县| 罗山县| 昌江| 长沙县| 阳曲县| 蒲江县| 宝坻区| 南雄市| 抚宁县| 东明县| 台东市| 湖南省| 体育| 喜德县| 南汇区| 淅川县| 达日县| 包头市| 正镶白旗| 贡觉县| 望都县| 合阳县|