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.java
package 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.java
package 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 件のコメント:
コメントを投稿