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を編集していきます。
オレンジ枠の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) } }
- Spring Loadedのバージョン指定 現在最新だった1.2.5.RELEASEを設定
- Spring Loadedへの依存を追加
- Gradle Refresh All
反映を確認するために、ソースを記述します。
TodoApplicationに対して追記しています。
詳細は後日記事にするつもりなので、簡単に説明します。
- @RestController を追加 アノテーションされたクラスがRestControllerとして認識されます。
- homeメソッドを実装 "Hello, world!"を返します。
- homeメソッドに@RequestMappingを追加 homeメソッドとURIを結びつけます。
次は起動し、試してみます。
- SpringBootをデバッグで起動
[Debug As] -> [Spring Boot App] - localhost:8080 へアクセスします
Hello, world!が表示されていることが確認できます。 - ソースを編集し、保存します
適当ですが、返り値の文字列を編集しました。 - 再度localhost:8080へアクセスします
変わりました。
これで確認を行いながら修正作業ができるようになりました。
Thymeleaf
もう1つ設定を行います。 Webページを担当するThmeleafは別に設定が必要です。
設定の前に、Webページを表示できるように変更します。
先ほどと同様にTodoApplicationを変更します。
- @Controllerに変更
Webページを返すコントローラであることを設定します。 - homeメソッドの返り値を"/index"に変更します。
templates配下のindex.htmlを返すことを表しています。 - /src/main/resources/templates配下にindex.htmlを追加します。
thmeleafはhtmlに対して特別なタグで値の埋め込み等をします。
閉じタグに非常に五月蝿いですので、metaタグなどは閉じタグを明記する必要があります。 - localhost:8080にアクセスし画面を確認します。
表示されました。
このままではhtmlを編集しても、再起動させないと反映されません。
設定
- application.ymlへ追記
spring.thymeleaf.cache に falseを設定します。 キャッシュを無効にしているため、デバッグ環境のみの設定にしておいたほうが良いです。 - デバッグモードで再起動します。
- htmlを変更します。
- 画面を確認します。
画面の変更が反映されています。
これで、ソースと画面の開発が楽になります。
もう少ししたら、実際の開発に入りたいです。