この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
sinatraみたいなフレームワーク
sinatraとは、Rubyの軽量WEBフレームワークです。 小規模なアプリケーションに特化しており、直感的に記述できて人気らしいです。 今回紹介するsparkは、そんなsinatraにインスパイアされて開発されたフレームワークみたいです。
セットアップも簡単なので、試してみましょう。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
- Apache Maven : 3.0.3
- Java : 1.7.0_17
sparkを試してみる
では、プロジェクトを作成してsparkを動かしてみましょう。 まずはmavenを使ってプロジェクトのひな形を作成します。
% mvn archetype:create -DgroupId=com.example -DartifactId=sample
生成されたpom.xmlを次の用に修正します。sparkライブラリの依存関係を追加しましょう。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>sample</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sample</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- sparkライブラリ追加ここから -->
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>1.1</version>
</dependency>
<!-- sparkライブラリ追加ここまで -->
</dependencies>
</project>
installコマンドを使い、sparkをインストールしておきましょう。
% cd path/your/sparkProject
% mvn install
下記コマンドを実行してEclipseプロジェクト化した後、Eclipseにimportします。
% mvn eclipse:eclipse
//Eclipseでimportをする
Eclipseで、生成されたApp.javaを編集しましょう。 sparkでは次のようにmainメソッドに記述すれば、組み込みのjettyで動かすことができます。
//srcs/spark/sample/src/main/java/com/example/App.java
package com.example;
import static spark.Spark.*;
import spark.*;
public class App {
public static void main(String[] args) {
get(new Route("/hello") {
@Override
public Object handle(Request request, Response response) {
return "Hello World!";
}
});
}
}
ここでは、/helloにGETリクエストがきたら、「Hello World!」という文字列を返しています。 見ただけでどんな処理をしているか、すぐにわかりますね。 また、get関数以外にはpost/put/delete等の関数があり、main関数に続けて記述することで、複数のルート情報を追加できます。
では、アプリを実行してみましょう。通常のJavaアプリを実行するときと同じく、Appクラスを実行します。
//実行時のコンソール
== Spark has ignited ...
>> Listening on 0.0.0.0:4567
アプリが起動したら、ブラウザでアクセスしてみましょう。デフォルトでは4567番ポートで起動します。 http://localhost:4567/helloにアクセスすると、画面に文字列が表示されます。
まとめ
たしかに、直感的でわかりやすいですね。 もちろんフィルタやビューテンプレート等、ある程度の機能はそろっているので、確認してみてください。
参考サイトなど
- spart公式: http://www.sparkjava.com