tyoshikawa1106のブログ

- Force.com Developer Blog -

Java:ターミナルからSpring Bootの雛形プロジェクトを作成

はじめのてSpring Bootという書籍を読んで、ターミナルからSpring Bootの雛形プロジェクトの作成方法について勉強しました。Java SE8とMavenをつかっています。
f:id:tyoshikawa1106:20151115130321p:plain


次のコマンドで雛形を作成します。

$ mvn -B archetype:generate -DgroupId=com.example -DartifactId=hajiboot -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart

f:id:tyoshikawa1106:20151115130939p:plain


作成された雛形はこんな感じです。
f:id:tyoshikawa1106:20151115131111p:plain


次のコマンドで作業ディレクトリに移動します。

$ cd hajiboot


Maventの依存関係定義ファイル『pom.xml』にSpring Bootを使用するための設定を記述。

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>hajiboot</artifactId>
  <packaging>jar</packaging>
  <version>1.0.0-SNAPSHOT</version>
  <name>hajiboot</name>
  <url>http://maven.apache.org</url>

  <!-- Spring Bootのバージョン指定 -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.8.RELEASE</version>
  </parent>

  <dependencies>
    <!-- Spring BootのWebアプリのライブラリ関係 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- spring Bootのテストライブラリ -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- Spring BootをビルドするためのMavenプラグイン -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <!-- Java SE8が使われるように設定 -->
  <properties>
    <java.version>1.8</java.version>
  </properties>
</project>


次のコマンドでどのライブラリが利用できるか確認できます。

$ mvn dependency:tree

f:id:tyoshikawa1106:20151115133039p:plain

Hello Worldを表示

「src/main/java/com/example/App.java」を開いて以下のコードを記述

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController // Webアプリのリクエストを受け付ける
@EnableAutoConfiguration // SpringBootの設定ファイルを自動で有効化
public class App {

    @RequestMapping("/") // homeメソッドの宣言
    String home() {
        return "Hello World!"; // Httpレスポンス
    }

    public static void main(String[] args) {
        SpringApplication.run(App.class, args); // 第一引数にEnableAutoConfigurationのクラスを指定
    }
}


次のコマンドで起動します。

$ mvn spring-boot:run

f:id:tyoshikawa1106:20151115134759p:plain


次のようになったら準備完了です。
f:id:tyoshikawa1106:20151115135134p:plain


localhost:8080にアクセスすると"Hello World"が表示されます。
f:id:tyoshikawa1106:20151115135236p:plain


アプリケーションの停止は「Ctrl + C」です。

jarファイルの作成

配布や実行が可能なjarファイルは以下のコマンドで作成できます。

$ mvn package

f:id:tyoshikawa1106:20151115135536p:plain


実行後、targetフォルダに作成されます。
f:id:tyoshikawa1106:20151115135758p:plain


jarファイルは次のコマンドで実行できます。

$ java -jar target/hajiboot-1.0.0-SNAPSHOT.jar


ポート番号の変更したい場合は次のようにオプションを追加します。

$ java -jar target/hajiboot-1.0.0-SNAPSHOT.jar --server.port=8888

以上がターミナルからSpring Bootの雛形プロジェクトを作成するときの流れです。