Posted at

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

More than 3 years have passed since last update.


Spark Frameworkとは

RubyのSinatoraというフレームワークにインスパイアされて作られた、シンプルなウェブ・アプリケーション・フレームワークです。

Java8のLambdaをサポートしていて、シンプルに記述することが可能です。

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

http://sparkjava.com

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



実行

http://localhost:4567/hello

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を使ってきましたが、今のところ一番楽に使うことができます。