Spark 是一個基於Java的微Web框架
Spark是一個可像Node.js的Express那樣快速Web框架,它雖然和大資料處理框架Spark同名,但是它是基於Java的,受Ruby的Sinatra框架鼓舞,用於Java的Web快速開發,使用Java 8 Lambda編寫。
開啟一個帶URL的服務程式碼如下:
透過瀏覽器開啟http://localhost:4567/hello
就會看到Hello world
實現RESTful架構也非常簡單,如下:
更多程式碼使用案例見Github
該框架的Server底層目前可惜不是基於Netty或Vert.x等非同步IO的,可以在Jetty和Tomcat中執行,如果能直接整合Vet.x,就是一個完整的Java版的Node.js+Express.js了。
開啟一個帶URL的服務程式碼如下:
import static spark.Spark.*; public class HelloWorld { public static void main(String[] args) { get("/hello", (req, res) -> "Hello World"); } } <p class="indent"> |
透過瀏覽器開啟http://localhost:4567/hello
就會看到Hello world
實現RESTful架構也非常簡單,如下:
import static spark.Spark.*; import java.util.HashMap; import java.util.Map; import java.util.Random; import spark.Request; import spark.Response; import spark.Route; /** * A simple CRUD example showing howto create, get, update and delete book resources. */ public class Books { /** * Map holding the books */ private static Map<String, Book> books = new HashMap<String, Book>(); public static void main(String[] args) { final Random random = new Random(); // Creates a new book resource, will return the ID to the created resource // author and title are sent as query parameters e.g. /books?author=Foo&title=Bar post("/books", (request, response) -> { String author = request.queryParams("author"); String title = request.queryParams("title"); Book book = new Book(author, title); int id = random.nextInt(Integer.MAX_VALUE); books.put(String.valueOf(id), book); response.status(201); // 201 Created return id; }); // Gets the book resource for the provided id get("/books/:id", (request, response) -> { Book book = books.get(request.params(":id")); if (book != null) { return "Title: " + book.getTitle() + ", Author: " + book.getAuthor(); } else { response.status(404); // 404 Not found return "Book not found"; } }); // Updates the book resource for the provided id with new information // author and title are sent as query parameters e.g. /books/<id>?author=Foo&title=Bar put("/books/:id", (request, response) -> { String id = request.params(":id"); Book book = books.get(id); if (book != null) { String newAuthor = request.queryParams("author"); String newTitle = request.queryParams("title"); if (newAuthor != null) { book.setAuthor(newAuthor); } if (newTitle != null) { book.setTitle(newTitle); } return "Book with id '" + id + "' updated"; } else { response.status(404); // 404 Not found return "Book not found"; } }); // Deletes the book resource for the provided id delete("/books/:id", (request, response) -> { String id = request.params(":id"); Book book = books.remove(id); if (book != null) { return "Book with id '" + id + "' deleted"; } else { response.status(404); // 404 Not found return "Book not found"; } }); // Gets all available book resources (id's) get("/books", (request, response) -> { String ids = ""; for (String id : books.keySet()) { ids += id + " "; } return ids; }); } } <p class="indent"> |
更多程式碼使用案例見Github
該框架的Server底層目前可惜不是基於Netty或Vert.x等非同步IO的,可以在Jetty和Tomcat中執行,如果能直接整合Vet.x,就是一個完整的Java版的Node.js+Express.js了。
[該貼被banq於2014-06-07 09:18修改過]
相關文章
- 使用開源微前端框架 Luigi 建立一個基於微前端架構的工程前端框架UI架構
- JWebUnit使用:jWebUnit是基於Java的Web應用程式的測試框架 .WebJava框架
- 基於 iframe 的微前端框架 —— 擎天前端框架
- 分享一個基於 Node.js 的 Web 開發框架 – NokitjsNode.jsWeb框架
- 9個基於Java的搜尋引擎框架Java框架
- [Web框架]Spray基於Scala的REST框架SprayWeb框架REST
- 微夢森網路-基於3.1.2框架框架
- 基於成本的Spark SQL優化器框架 [session]SparkSQL優化框架Session
- nickel.rs 是一款基於Rust的Web應用開源框架RustWeb框架
- 一個基於Android的MVP框架DemoAndroidMVP框架
- 基於NodeJS的14款Web框架NodeJSWeb框架
- 基於業務的Web應用框架 SimpleFrameworkWeb框架Framework
- 我是如何成為一個Java Web開發者的JavaWeb
- 一個基於xml的超級orm框架-世界是由懶人創造的。XMLORM框架
- 基於 Laravel 的最後一個框架 luminaLaravel框架
- Uvicorn 初體驗-一個基於 asyncio 開發的一個輕量級高效的 Web 伺服器框架Web伺服器框架
- Lumen是用於構建微服務的快速PHP微框架微服務PHP框架
- Phoenix - 基於Elixir的下一代Web開發框架Web框架
- [轉]9個優秀的基於 JavaScript 與 CSS 的 Web 圖表框架JavaScriptCSSWeb框架
- 構建一個基於 Spring 的 RESTful Web ServiceSpringRESTWeb
- Diet.js是基於Node.js小而快的輕量Web框架Node.jsWeb框架
- 5個基於Web的建模工具Web
- 基於GORM框架的web後端開發(一): GORM連線MySQLGoORM框架Web後端MySql
- 基於RxJava的函式式Reactive Web框架:datamillRxJava函式ReactWeb框架
- ShutIt:一個基於 Python 的 shell 自動化框架Python框架
- Spark3學習【基於Java】3. Spark-Sql常用APISparkJavaSQLAPI
- Twirp:一個很酷的基於Go的新RPC框架GoRPC框架
- 深度:從零編寫一個微前端框架前端框架
- 一個Java的Actor框架:kilimJava框架
- 通過做一個基於Node的微伺服器來學習Docker伺服器Docker
- lenneth — 基於koa2 的web極簡框架Web框架
- 基於Selenium + Python的web自動化框架PythonWeb框架
- 基於gin框架封裝的web專案骨架goskeleton框架封裝WebGo
- 基於go語言gin框架的web專案骨架Go框架Web
- lenneth -- 基於koa2 的web極簡框架Web框架
- 基於JAVA WEB的醫藥管理系統JavaWeb
- 一個基於Java的開源URL嗅探器Java
- Azkarra Streams簡介:Apache Kafka Streams的第一個微框架ApacheKafka框架