目次
gradle を使って Spring Boot の環境を整備するチュートリアルです。
環境
- gradle 2.10
- Ubuntu 16.04.1 LTS
Ubuntu でやっていますが、 Mac や Windows でも同じだと思います、 たぶん。
gradle init
gradle のプロジェクトを作るために次のコマンドを実行します。
1 |
gradle init |
これを実行すると build.gradle
, gradle
, gradlew
, gradlew.bat
, settings.gradle
の5つのファイルができます。
Spring Boot の基本構成
先ほどできた build.gradle
の中に基本コンポーネントを記述していきます。 build.gradle
のサンプルは Spring Boot Reference Guide 10.1.2 Gradle installation にあります。 Kotlin を使う場合の書き方は下に記載しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
buildscript { repositories { jcenter() maven { url "http://repo.spring.io/snapshot" } maven { url "http://repo.spring.io/milestone" } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE") } } apply plugin: 'java' apply plugin: 'spring-boot' jar { baseName = 'myproject' version = '0.0.1-SNAPSHOT' } repositories { jcenter() maven { url "http://repo.spring.io/snapshot" } maven { url "http://repo.spring.io/milestone" } } dependencies { compile("org.springframework.boot:spring-boot-starter-web") testCompile("org.springframework.boot:spring-boot-starter-test") } |
そして、 メインメソッドを記述します。 src/main/java/com/example/myproject/Application.java
クラス を作って、 次のように記述します。 記述内容は Spring Boot Reference Guide にも記載がありますので、 最新情報はそちらで確認してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package com.example.myproject; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } |
一番シンプルな形のクラスです。 Deployable War などを考えると少し記述が変わってきます。 ここで ./gradlew bootrun
を実行するとウェブサーバ(tomcat)が起動しますが、特になにも具体的なコードを書いていないので、なにも起こりません。
クラス名は Application にしていますが、 別の名前でも動きます。
Kotlin でやる場合
Kotlin + Spring の環境でも同じことができます。 その場合は build.gradle
は次のようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
buildscript { ext.kotlin_version = '1.0.0' ext.spring_boot_version = '1.3.0.RELEASE' repositories { jcenter() maven { url "http://repo.spring.io/snapshot" } maven { url "http://repo.spring.io/milestone" } } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE") } } apply plugin: 'kotlin' apply plugin: 'spring-boot' jar { baseName = 'myproject' version = '0.0.1-SNAPSHOT' } repositories { jcenter() maven { url "http://repo.spring.io/snapshot" } maven { url "http://repo.spring.io/milestone" } } dependencies { compile("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version") compile("org.springframework.boot:spring-boot-starter-web") testCompile("org.springframework.boot:spring-boot-starter-test") } |
Application クラス (src/main/java/com/example/myproject/Application.kt) は次のようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package com.example.myproject import org.springframework.boot.SpringApplication import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.Configuration @Configuration @EnableAutoConfiguration @ComponentScan open class Application { companion object { @JvmStatic fun main(args: Array<String>) { SpringApplication.run(Application::class.java, *args) } } } |
この他にもパターンがあります。 Kotlin のドキュメントに詳しく記載されています。
また、 今回作成したものは GitHub に登録しています。
必要最低限のクラスを作りました。 この後は、 たとえば他のクラス (model, controller) などを追加して、 Webアプリケーションらしくしていきます。