暇な日々にスパイスを

学んだ技術の備忘録

Spring Boot 3 続 環境設定

Spring Bootの環境設定を続けていきます。

中々Srcを書き始められません。

Spring Loaded

GitHub - spring-projects/spring-loaded: Java agent that enables class reloading in a running JVM

SpringBootのデバッグ時に、Javaファイルの変更を反映してくれるようになります。 通称 Hol Reloading です。

Javaファイル変更のたびにRelaunchは大変です。内製TomcatがStop And Restartするので待ち時間もあります。

設定

設定は以下の記事を参考にしています。

Spring BootでHot Reloading - sohatach's blog

build.gradleを編集していきます。
f:id:snona:20160211191421p:plain

オレンジ枠の2箇所を追記しています。
build.gradleを抜粋。

buildscript {
    ext {
        springBootVersion = '1.3.2.RELEASE'
        springLoadedVersion = '1.2.5.RELEASE'  # (1)
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
        classpath("org.springframework:springloaded:${springLoadedVersion}")  #  (2)
    }
}
  1. Spring Loadedのバージョン指定 現在最新だった1.2.5.RELEASEを設定
  2. Spring Loadedへの依存を追加
  3. Gradle Refresh All

反映を確認するために、ソースを記述します。
f:id:snona:20160211192357p:plain TodoApplicationに対して追記しています。

詳細は後日記事にするつもりなので、簡単に説明します。

  1. @RestController を追加 アノテーションされたクラスがRestControllerとして認識されます。
  2. homeメソッドを実装 "Hello, world!"を返します。
  3. homeメソッドに@RequestMappingを追加 homeメソッドURIを結びつけます。

次は起動し、試してみます。

  1. SpringBootをデバッグで起動
    [Debug As] -> [Spring Boot App]
  2. localhost:8080 へアクセスします
    f:id:snona:20160211193212p:plain
    Hello, world!が表示されていることが確認できます。
  3. ソースを編集し、保存します
    f:id:snona:20160211193308p:plain
    適当ですが、返り値の文字列を編集しました。
  4. 再度localhost:8080へアクセスします
    f:id:snona:20160211193356p:plain
    変わりました。

これで確認を行いながら修正作業ができるようになりました。

Thymeleaf

もう1つ設定を行います。 Webページを担当するThmeleafは別に設定が必要です。

設定の前に、Webページを表示できるように変更します。

先ほどと同様にTodoApplicationを変更します。 f:id:snona:20160211194749p:plain

  1. @Controllerに変更
    Webページを返すコントローラであることを設定します。
  2. homeメソッドの返り値を"/index"に変更します。
    templates配下のindex.htmlを返すことを表しています。
  3. /src/main/resources/templates配下にindex.htmlを追加します。
    f:id:snona:20160211195253p:plain
    thmeleafはhtmlに対して特別なタグで値の埋め込み等をします。
    閉じタグに非常に五月蝿いですので、metaタグなどは閉じタグを明記する必要があります。
  4.  localhost:8080にアクセスし画面を確認します。 f:id:snona:20160211200515p:plain
    表示されました。

このままではhtmlを編集しても、再起動させないと反映されません。

設定

  1. application.ymlへ追記
    f:id:snona:20160211201345p:plain
    spring.thymeleaf.cache に falseを設定します。 キャッシュを無効にしているため、デバッグ環境のみの設定にしておいたほうが良いです。
  2. デバッグモードで再起動します。
  3. htmlを変更します。
    f:id:snona:20160211201615p:plain
  4. 画面を確認します。
    f:id:snona:20160211201644p:plain
    画面の変更が反映されています。

これで、ソースと画面の開発が楽になります。
もう少ししたら、実際の開発に入りたいです。