Spark 2.0.0 支持 Java 8 Lambda

jopen 10年前發布 | 12K 次閱讀 Spark

Spark是一個微型的Java Web框架,它的靈感來自于Sinatra,它的目的是讓你以最小的代價創建出一個Java Web應用。最近更新到2.0.0,支持Java 8 ,支持Lambda,Demo代碼看起來非常有吸引力

最新版本已經可以通過maven center倉庫依賴進來

<dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-core</artifactId>
        <version>2.0.0</version>
</dependency>

入門指南

import static spark.Spark.*;

import spark.*;

public class HelloWorld {

   public static void main(String[] args) {

      get("/hello", (request, response) -> {          return "Hello World!";       });

   }

}</pre>

運行

http://localhost:4567/hello

是否非常簡單?

基本功能

Spark的應用程序的主要構建塊是一組路由。路由是由三個部分組成:
一個動詞(get, post, put, delete, head, trace, connect, options)
路徑(/hello, /users/:name)
一個回調(request, response) -> { }
路由匹配的順序定義。調用第一個匹配的路由請求。

import static spark.Spark.*;

import spark.Request; import spark.Response; import spark.Route;

/*   A simple example just showing some basic functionality  */ public class SimpleExample {

    public static void main(String[] args) {

        //  setPort(5678); <- Uncomment this if you wan't spark to listen on a port different than 4567.

        get("/hello", (request, response) -> {             return "Hello World!";         });

        post("/hello", (request, response) -> {             return "Hello World: " + request.body();         });

        get("/private", (request, response) -> {             response.status(401);             return "Go Away!!!";         });

        get("/users/:name", (request, response) -> {            return "Selected user: " + request.params(":name");         });

        get("/news/:section", (request, response) -> {            response.type("text/xml");            return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><news>" + request.params("section") + "</news>";         });

        get("/protected", (request, response) -> {            halt(403, "I don't think so!!!");            return null;         });

        get("/redirect", (request, response) -> {            response.redirect("/news/world");            return null;         });

        get("/", (request, response) -> {            return "root";         });

    } }</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!