Mac OSX 10.8.5
Eclipse Kepler 4.3
Java 1.6.0_65
Maven 3.1.1
SpringFramework 4.0.3
Eclipse Kepler 4.3
Java 1.6.0_65
Maven 3.1.1
SpringFramework 4.0.3
■環境準備
1. Mavenプロジェクトを作成する
2. pom.xmlの作成
3. クラス作成
4. mavenビルドの実行
5. jarの実行と動作確認
eclipseを開き New -> Other -> MavenProject を選択し Next をクリックします

次もデフォルトのままNextをクリックします

プロジェクトのarchetypeを設定します
GroupIdがorg.apache.maven.archetypes、ArtifactIdがmaven-archetype-quickstart を選択します

作成するプロジェクトのGroupIdとArtifactIdを選択する画面になりますので適当に入力します
ここでは以下の通り入力しました

入力が完了したらFinishをクリックします

次もデフォルトのままNextをクリックします

プロジェクトのarchetypeを設定します
GroupIdがorg.apache.maven.archetypes、ArtifactIdがmaven-archetype-quickstart を選択します

作成するプロジェクトのGroupIdとArtifactIdを選択する画面になりますので適当に入力します
ここでは以下の通り入力しました
- GroupId・・・com.kakakikikeke.sample
- ArtifactId・・・java-spring-sample

入力が完了したらFinishをクリックします
2. pom.xmlの作成
以下の内容のpom.xmlを作成します
junitのdependencyに関しては削除しても問題ありません(maven-archetype-quickstartから作成すると自動で追加されてしまうものです)
properties.start-classの値に関してはパッケージ名やこのあと作成するApplicationクラスの名称が異なる場合には適宜変更してください
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" 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.kakakikikeke.sample</groupid>
<artifactid>java-spring-sample</artifactid>
<version>1.0</version>
<packaging>jar</packaging>
<name>java-spring-sample</name>
<url></url>
<properties>
<project .build.sourceencoding="">UTF-8</project>
<start-class>com.kakakikikeke.sample.Application</start-class>
</properties>
<parent>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-parent</artifactid>
<version>1.0.0.RC3</version>
</parent>
<dependencies>
<dependency>
<groupid>junit</groupid>
<artifactid>junit</artifactid>
<scope>test</scope>
</dependency>
<!-- for spring -->
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-web</artifactid>
</dependency>
<dependency>
<groupid>com.fasterxml.jackson.core</groupid>
<artifactid>jackson-databind</artifactid>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactid>maven-compiler-plugin</artifactid>
</plugin>
<plugin>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-maven-plugin</artifactid>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginrepositories>
<pluginrepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginrepository>
</pluginrepositories>
</project>
springのライブラリのダウンロードとmavenビルド時に必要なgoalsを使用するためにプラグインを追加していますjunitのdependencyに関しては削除しても問題ありません(maven-archetype-quickstartから作成すると自動で追加されてしまうものです)
properties.start-classの値に関してはパッケージ名やこのあと作成するApplicationクラスの名称が異なる場合には適宜変更してください
3. クラス作成
以下3つのクラスファイルを作成したパッケージ配下に作成してください
com.kakakikikeke.sample.Greeting.java
com.kakakikikeke.sample.Greeting.java
package com.kakakikikeke.sample;
public class Greeting {
private final long id;
private final String content;
public Greeting(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
com.kakakikikeke.sample.GreetingController.javapackage com.kakakikikeke.sample;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
@ResponseBody
public Greeting greeting(
@RequestParam(value = "name", required = false, defaultValue = "World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template,
name));
}
}
com.kakakikikeke.sample.Application.javapackage com.kakakikikeke.sample;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Application.javaは名称を変更した場合はpom.xmlのstart-classの定義も変更してください4. mavenビルドの実行
Run Configurations からmavenの新規ビルドを作成してください
新規作成画面で以下のように設定します

入力が必要な箇所はName, Base directory, Goalsの3箇所です
入力が完了したら Apply -> Run としてください
ビルドが失敗する場合はGoalsの設定を「mvn clean package spring-boot:repackage」に変更して再度ビルドしてください
target/java-spring-sample-1.0.jarが作成できていればビルド成功となります
新規作成画面で以下のように設定します

入力が必要な箇所はName, Base directory, Goalsの3箇所です
入力が完了したら Apply -> Run としてください
ビルドが失敗する場合はGoalsの設定を「mvn clean package spring-boot:repackage」に変更して再度ビルドしてください
target/java-spring-sample-1.0.jarが作成できていればビルド成功となります
5. jarの実行と動作確認
jarの作成が完了したらjarを実行してアプリを起動します
プロジェクトのフォルダに移動してターミナルから以下のコマンドを実行してください
ターミナルはそのままにしてブラウザでhttp://localhost:8080/greetingにアクセスしてみてください
JSONのレスポンスが返ってくるかと思います
「?name=hoghoge」のようにパラメータを付与するとブラウザの表示も変化するのがわかると思います
プロジェクトのフォルダに移動してターミナルから以下のコマンドを実行してください
java -jar target/java-spring-sample-1.0.jarエラーなく起動すれば起動完了です
ターミナルはそのままにしてブラウザでhttp://localhost:8080/greetingにアクセスしてみてください
JSONのレスポンスが返ってくるかと思います
「?name=hoghoge」のようにパラメータを付与するとブラウザの表示も変化するのがわかると思います
以上でSpringFrameworkを使った簡単なAPIの実装は完了です
SpringFrameworkには他にもいろいろな機能が揃っているのでこれをベースに機能の拡充をしていくのもいいかと思います
■参考サイト
0 件のコメント:
コメントを投稿