Help us understand the problem. What is going on with this article?

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

opst
情報技術と社員力でお客様を成功に導く Make IT Your Success
https://www.opst.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away