Spring Bootによる簡単Springアプリケーション開発

提供: omotenashi-mind
移動: 案内検索

インストール

前提

Spring Boot利用のためには、次の環境が必要となります。

  • Java SDK v1.6以上
  • Gradle 1.6以上(※)
  • Eclipse 3.7.2以上(Gradleプラグインが導入されたもの)

※ここではGradleを利用した手順をご説明しますが、Mavenで導入する方法も提供されています。

補足:UbuntuへのGradleインストール手順

gradleのリポジトリを追加して、リポジトリを更新します。

sudo add-apt-repository ppa:cwchien/gradle
sudo apt-get update

リポジトリの更新が終わったら、gradleをインストールします。

sudo apt-get install gradle-ppa


補足:EclipseへのGradleプラグインインストール手順

Eclipseのプラグインインストールメニューから、以下のGradleプラグイン公開サイトを設定して導入してください。
Gradleプラグイン公開サイト

http://dist.springsource.com/release/TOOLS/gradle


表示されるプラグインの中から「Gradle IDE」を選択してインストールしましょう。

補足:GVM(Groovy enVironment Manager)インストール手順

curl -s get.gvmtool.net | bash
cd
source .gvm/bin/gvm-init.sh


開発編

Getting Start

ここでは手始めに、Spring Bootを利用したRest API作成の流れを解説します。

1.Gradleプラグインを導入したEclipseを起動し、新規Gradleプロジェクトを作成します。

2.次にビルド用ファイル「build.gradle」を新規作成したGradleプロジェクトの直下に作成します。以下、「build.gradle」ファイルの内容です。

(build.gradle)

  1. buildscript {
  2.     repositories {
  3.         mavenCentral()
  4.         maven { url "http://repo.spring.io/snapshot" }
  5.         maven { url "http://repo.spring.io/milestone" }
  6.     }
  7.     dependencies {
  8.         classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.7.RELEASE")
  9.     }
  10. }
  11.  
  12. apply plugin: 'java'
  13. apply plugin: 'spring-boot'
  14.  
  15. jar {
  16.     baseName = 'myproject'
  17.     version =  '0.0.1-SNAPSHOT'
  18. }
  19.  
  20. repositories {
  21.     mavenCentral()
  22.     maven { url "http://repo.spring.io/snapshot" }
  23.     maven { url "http://repo.spring.io/milestone" }
  24. }
  25.  
  26. dependencies {
  27.     compile("org.springframework.boot:spring-boot-starter-web")
  28.     testCompile("org.springframework.boot:spring-boot-starter-test")
  29. }


3.build.gradleファイルを作成すると、関連ライブラリのダウンロードが始まります。
4.関連ライブラリのダウンロードが完了したら、実際に動作する実行クラスを作成します。

  1. import org.springframework.boot.SpringApplication;
  2. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5.  
  6. @RestController
  7. @EnableAutoConfiguration
  8. public class HelloWorld {
  9.  
  10.     @RequestMapping("/")
  11.     String home() {
  12.         return "Hello World!";
  13.     }
  14.  
  15.     public static void main(String[] args) throws Exception {
  16.         SpringApplication.run(HelloWorld.class, args);
  17.     }
  18.  
  19. }


5.実行クラスの作成が完了したら、あとは実行するだけです。実行すると、次のようなログが出力され、Tomcatが起動します。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.1.7.RELEASE)


6.起動が確認できたら、最後に接続します。
(接続先)

http://localhost:8080/

「Hello World!」と出力されれば完了です。

Spring Batch編

Spring BootはSpring Batchもサポートしています。以下、手順を簡単に解説します。

1.Getting Start同様にプロジェクトおよびビルド用ファイル(build.gradle)を作成します。なお、Getting Startで紹介したbuild.gradleファイルの27行目だけをSpring Batch用に変更します。

compile("org.springframework.boot:spring-boot-starter-batch")


2.Spring Batch設定を示すクラスを定義します。

  1. import org.springframework.batch.core.Job;
  2. import org.springframework.batch.core.Step;
  3. import org.springframework.batch.core.StepContribution;
  4. import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
  5. import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
  6. import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
  7. import org.springframework.batch.core.launch.support.RunIdIncrementer;
  8. import org.springframework.batch.core.scope.context.ChunkContext;
  9. import org.springframework.batch.core.step.tasklet.Tasklet;
  10. import org.springframework.batch.repeat.RepeatStatus;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  13. import org.springframework.context.annotation.Bean;
  14. import org.springframework.context.annotation.Configuration;
  15.  
  16. @Configuration
  17. @EnableBatchProcessing
  18. @EnableAutoConfiguration
  19. public class BatchConfiguration {
  20.  
  21.         @Autowired
  22.         private JobBuilderFactory jobBuilderFactory;
  23.  
  24.         @Autowired
  25.         private StepBuilderFactory stepBuilderFactory;
  26.  
  27.         @Bean
  28.         public Step step1() {
  29.                 return stepBuilderFactory.get("step1")
  30.                                 .tasklet(new Tasklet() {
  31.                                         @Override
  32.                                         public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
  33.                                                 return null;
  34.                                         }
  35.                                 }).build();
  36.   }
  37.  
  38.         @Bean
  39.         public Job job(Step step1) throws Exception {
  40.                 return jobBuilderFactory.get("job1")
  41.                                 .incrementer(new RunIdIncrementer()).start(step1).build();
  42.         }
  43. }

従来のジョブ定義ファイルをアノテーションベースで記述できるようになっています。

3.起動用のMainクラスを定義します。

  1. import org.springframework.boot.SpringApplication;
  2.  
  3. public class Main {
  4.         public static void main(String[] args) {
  5.                 System.exit(SpringApplication.exit(SpringApplication.run(
  6.                                 BatchConfiguration.class, args)));
  7.         }
  8. }


4.Mainクラスを起動すると、設定に従ってJobが実行されることが確認できます。
以上.

参考サイト