かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot で書籍の貸出状況確認・貸出申請する Web アプリケーションを作る ( 感想 )

最後に感想です。

  • Spring Session が便利です。ライブラリをインストールして @EnableRedisHttpSession アノテーションを Application クラスに付加するだけで、あとは特に意識することなくアプリケーションサーバ間でセッションが簡単に共有できるのはいいですね。ただし Redis サーバを構築できないといけなんですよね。日本語のドキュメントはほとんど見かけなかったので、本格的に使いたいなら英語のドキュメント見ないといけなさそうです。。。

  • RabbitMQ もかなり便利そうなのですが、Redis 以上にサーバの構築方法がよく分かっていません。メッセージキューはかなり興味があるし、Spring Boot を利用するとメッセージ送受信は容易にできるようなので、こちらも本格的に覚えたいですね。

  • Spring Boot + Spring Security は Spring Security のサイトの英語のドキュメントstackoverflow で調べながらなんとか使えるようになったと思いますが、使い方がまとまった書籍が欲しいです。自分で使う分には困らないのですが、人に教える時にすごく不便なんですよね。

  • RestTemplate は今回初めて使いましたが、WebAPI を簡単に呼び出せる便利なライブラリという印象です。ただし JSON が返る WebAPI を呼び出すのは難しくないと思うのですが、XML が返る WebAPI を呼び出す時は jackson-dataformat-xml の使い方も覚える必要があり JSON の時と比較すると少し手間がかかりました。

  • Spock、とてもテストが書きやすいです。特にライブラリ関連でパラメータ化テストを書きたい場合には JUnit に戻るつもりはないですね。Groovy もブログを書き始めた頃は全然気にしていませんでしたが、gradle のスクリプトを書いたり、Spock でテストを書いたりとよく活用するようになりました。最近は Kotlin が正式リリースされて Spring Boot + Kotlin が話題ですが、自分としては Java のサブ言語はライブラリが整っている Groovy の方が便利に感じます。

  • 前回の Spring Boot でメール送信する Web アプリケーションを作る ( 感想 ) では JRebel を便利に感じるところまで使えませんでしたと書きましたが、最近はまず Debug with JRebel で Tomcat を起動して、起動したまま開発 → 修正したら Ctrl+F9 で更新 → 動作確認、Debug したくなったらブレークポイントを指定して動作確認というスタイルになりました。スクリプト言語と比較しても、そんなに開発効率悪くないと思います。

  • ファイルのアップロード/ダウンロード、リスト型のサブフォームのある画面を Thymeleaf で取り扱う方法、Cookie を取り扱う方法も今回実装しましたが、分かってしまえばそんなに難しいことではないのですが、1つ1つ調べるのに以外に時間がかかりました。こちらも Spring Security と同様に使い方がまとまった書籍が欲しいですね。

  • Doma 2 はもう何も言うことなしですね。最近仕事でも Spring Boot で開発しましたが、全部 Doma 2 で実装しました。ドキュメントも日本語のものがよくまとまっていて、その点でも不満がありません。

さて次は Spring Boot の 1.3 系でサンプルを作りたいと思います。まずは新規に作るのではなく、今回作った「Spring Boot で書籍の貸出状況確認・貸出申請する Web アプリケーションを作る」の Web アプリを 1.3系に作り直してみる予定です ( たぶん )。