[戻る]

Java読書会BOF「Spring徹底入門 第2版」を読む会 第16回

開催概要

日時

2026年1月31日(土) 10:00-17:00

場所

てくのかわさき 第2研修室

出席者(敬称略)

高橋(智)、遠藤、高橋(徹)(記)

本日は、p.668 14.2.6 会議室一覧表示機能の実装から読み始め、読了しました。

Chapter 14 チュートリアル

14.2 アプリケーションの開発

14.2.6 会議室一覧表示機能の実装

  • Repositoryは、インタフェースのみ定義すれば、実装クラスはSpringが良きに計らってくれる

  • p.670 リスト RoomsController.java で、listRoomsメソッドはpublicではなく、パッケージスコープとなっている

  • p.671 リスト listRooms.html で、#temporals とあるが、これは何か

    • thymeleaf-extras-java8time を依存に追加すると、#temporalsなどが利用可能になる

    • spring-boot-starter-thymeleaf を依存に追加するとひっぱってくれるので SpringBootでは明示的に記載は不要

  • 同、date.minusDays(1)の結果を文字列にしている(toStringの結果)が、これはどの日付形式か?

    • LocalDateのtoStringは、yyyy-MM-ddを返す

  • p.673 図14.20の画面キャプチャでは、前日、翌日の文字とともに "<", ">"の記号が表示されているが、p.671のHTMLファイルにはアングルブラケットの表示がない。

  • サンプルを実行時、hibernateのDEBUGログで表示するSQLのorder by に ASCがない。JPA実装のバージョンに依存?

    • メソッド名にDescを指定してDescendingにすると、生成されるSQLに DESCが付く

    • SQLのorder by はASCが規定なので丁寧に省略している模様

14.2.7 会議室予約機能の実装

  • p.676 ②項 「reservable_roomテーブルから取得し」は、コードが reservation RepositoryからReservationを取得しているので、「reservationテーブル」の誤植

  • p.677 Reservation.javaのリストでoverlapメソッドの実装において、開始時刻と終了時刻が一致する予約同士は、③の条件で判定できるため②の条件の判定は不要ではないか?

  • 【宿題】ThymeleafのHTMLテンプレートを更新したときに、アプリケーションを再起動せずに変更を反映する方法はあるか?

    • application.properties に、spring.thymeleaf.cache=falseを書いてみたが反映されない

  • 【誤植】p.687 ThirtyMinutesUnit.javaの実装 3箇所、戻り値とメソッド名の間に空白が欠如している。

    • Class<?>[]groups()

    • Class<? extends Payload>[]payload()

    • ThirtyMinutesUnit[]value()

  • 【宿題】@Lockの意味は

  • 【宿題】Spring JPA メソッド名でfindOneForUpdate のForUpdateを記述する意味は?

14.2.8 ログイン機能の実装

14.2.9 実行可能jarの作成

  • 【誤植】p.707 上1行目 「target/mrs-0.1.0-SNAPSHOT.jar」→「target/mrs-0.0.1-SNAPSHOT.jar」

次回

次回からは、新しい課題図書を読み始めます。

[戻る]