51
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オープンストリームAdvent Calendar 2015

Day 24

Java8時代のフレームワーク Spark Framework

Posted at

Spark Frameworkとは

RubyのSinatoraというフレームワークにインスパイアされて作られた、シンプルなウェブ・アプリケーション・フレームワークです。
Java8のLambdaをサポートしていて、シンプルに記述することが可能です。

組み込みのWebサーバが内蔵されているため、APサーバを別途建てること無くアプリケーションを実行することが出来る点もイマドキな感じがします。

ScalaでもScalatraというSinatra Likeなフレームワークが有り、それを使っていた身としてはしっくりくるフレームワークでした。

依存関係を追加

では、Saprk Frameworkを使ってみましょう。
今回は、Gradleを使ってプロジェクトを作成します。

build.gradle
group 'sample'
version '1.0.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'com.sparkjava:spark-core:2.3'
}

APIを作成

Spark Frameworkを使ってAPIを作成します。

Hello.java
package sample;
import static spark.Spark.*;

public class Hello {

    public static void main(String[] args){
        get("/hello", (request, response) -> "Hello World");
    }
}

実行

Hello Worldと表示されました。

Spark Frameworkについても詳しい使い方は、ドキュメントを参照してください。
http://sparkjava.com/documentation.html

実行可能jarの作成

Gradleを使って、実行可能jar の作成を行います。

build.gradle
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'eu.appsatori:gradle-fatjar-plugin:0.3'
    }
}

group 'sample'
version '1.0.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'eu.appsatori.fatjar'

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'com.sparkjava:spark-core:2.3'
}

fatJar {
    baseName = 'spark-sample'
    manifest {
        attributes('Main-Class': 'sample.Hello')
    }
}

実行

java -jar spark-sample-1.0.0-SNAPSHOT.jar

まとめ

Spark Frameworkを使用すれば、とても簡単にWebアプリケーションを作成することができますね。
いろいろなFrameworkを使ってきましたが、今のところ一番楽に使うことができます。

51
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?