Spark 2.0.0 支持 Java 8 Lambda

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!";
      });

   }

}

运行

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";
        });

    }
}

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-17 09:53:19

Spark 2.0.0 支持 Java 8 Lambda的相关文章

怎样在Redhat 9.0下让PHP支持Java类

最近在Linux下的PHP支持Java类,我把调试笔记经过整理总结后写出来,希望对大家今后的调试会有所帮助. 系统环境: Redhat 9.0 Apache-1.3.27 Mysql3.23-54a-11 Php-4.32 j2sdk1.4.1_03 安装配置: 1.mysql使用的是redhat9自带的rpm包,不介绍安装了,jdk的安装也很简单,我们把jdk安装到/usr/java/j2sdk1.4.1_03 并在/etc/profile设置jdk环境参数. 2.编译安装apache tar

Spark Release 2.0.0发版概序

Spark2.0在2016年7月26日发布,因为工作中经常用到,所以对它关注比较多,正好今天"提前"下班,所以抽空翻译一下spark2.0发版概述,简单的介绍一下spark2.0的新特性和新变化.好吧,现在就让村长带领大家一起走进spark2.0的神秘殿堂.同时也希望更多的人参入进来,知识因为共享才变的有意义和价值. 译者注:因为由于时间原因,导致翻译不及时,信息有一定的滞后,在此村长深表歉意.同时也希望更多优秀人才参入进来,让最新最优秀的文章第一时间与有梦想的人分享,一起进步,共同成

Spark 1.5.0 远程调试

Spark 1.5.0 远程调试 作者:摇摆少年梦 微信号:zhouzhihubeyond 先决条件 已安装好Spark集群,本例子中使用的是spark-1.5.0. 安装方法参见:http://blog.csdn.net/lovehuangjiaju/article/details/48494737 已经安装好Intellij IDEA,本例中使用的是Intellij IDEA 14.1.4,具体安装方法参见:http://blog.csdn.net/lovehuangjiaju/articl

What’s new in Spark 1.2.0

What's new in Spark 1.2.0 1.2.0 was released on 12/18, 2014 在2014年5月30日发布了Spark 1.0 和9月11日发布了Spark1.1.后,Spark 1.2 终于在12月18日发布.作为1.X时代的第三个release,它有什么重要更新呢? 1.    Spark Core:性能和易用性的改进 对于超大规模的Shuffle,Spark Core在性能和稳定性方面做了两个重要的更新: 一)     Communication M

Imixs Workflow 3.0.0发布 Java工作流管理系统

The Imixs Workflow 是一款提供了一个基于Java的BPM工作流框架,用快速和简易的方式建立工作流管理系统(WFMS).它提供不同的组件和分项工程来促成各种Java或Java EE应用程序的工作流解决方案的开发.其目的是提供一个易于使用的Java基于人类的工作流技术.这意味着Imixs Workflow 通常是适用于人对人的工作流应用程序.但它也可以用于技术的企业http://www.aliyun.com/zixun/aggregation/8504.html">流程管理解

Spark修炼之道(进阶篇)——Spark入门到精通:第一节 Spark 1.5.0集群搭建

作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 操作系统环境准备 Hadoop 2.4.1集群搭建 Spark 1.5.0 集群部署 注:在利用CentOS 6.5操作系统安装spark 1.5集群过程中,本人发现Hadoop 2.4.1集群可以顺利搭建,但在Spark 1.5.0集群启动时出现了问题(可能原因是64位操作系统原因,源码需要重新编译,但本人没经过测试),经本人测试在ubuntu 10.04 操作系统上可以顺利成功搭建.大家可以利用CentOS

Sharding-JDBC 1.3.0发布——支持读写分离

当当的分布式数据库中间层Sharding-JDBC正式开源.经过近半年的潜心打磨,Sharding-JDBC于六一前夕正式发布1.3.0里程碑版本. Sharding-JDBC源于当当应用框架ddframe的关系型数据库访问模块dd-rdb,主要功能是使数据库分库分表访问透明化.项目定位为轻量级Java中间件,采用JDBC层协议封装,可以理解为增强版的JDBC,适用于绝大部分Java ORM框架和使用标准SQL的数据库. Sharding-JDBC在当前开源数据库中间件百花齐放,但稳定易用产品不

Aspose.Pdf.Kit for Java 4.0.0发布 PDF文档的Java组件

Aspose.Pdf.Kit是一个用于处理http://www.aliyun.com/zixun/aggregation/16864.html">PDF文档的Java组件.它支持填补XFA字段,创建PDF文档链接,字体样式,修改AcroForm,提取.添加图片和文字,检索和修改元数据信息,进行加密或解密PDF文件,添加水印或标志,附加页,并可以转换PDF文件到单一的TIFF或XML文件. Aspose.Pdf.Kit for Java 4.0.0版本包含了文本提取相关的两个新功能,提取文本

WildFly Swarm 2017.6.0 发布,Java 应用服务器

WildFly Swarm 2017.6.0 发布了. 新特性 More YAML less main() Update to WF Camel 4.7.0 发布页详情 下载地址 WildFly是红帽公司新一代应用服务器.支持动态模块化.集中化管理.Java EE 7,而WildFly swarm是WildFly的微服务化支持,和spring boot类似.但是WildFly swarm完整的支持JAVA EE的准标. WildFly Swarm采取的可执行文件"uberjars"打包