書籍「Spring Boot2 プログラミング入門(秀和システム)chapter2 Groovyによる超簡単アプリケーション開発」を参考にしながらWebフォームを作成した際に困った点をなどを記述する。
Groovyでアプリ作成した理由
普段Javaのコードを書いている環境で実行できる簡単なスクリプト言語として気になったので手を出してみた。
Javaの文法を周到しつつインテンドを気にしなくていいPythonのような感じがした。
ごく簡単な個人開発レベルのアプリ制作には使えそうな気がする。
環境
OS:macOS
JDK:14
Spring Initializrからひな形をダウンロード
参考にした書籍内ではとにかく動くものを作成するためにSpringBootCLIを利用しているが、ある程度実践的な形を想定してSpring Initializrを利用した。以下は各種設定
- Project:Maven
- Language:Groovy
- SpringBoot:2.4.5
- Java:11
- Dependencies:SpringWeb,Groovy Templates(いらないかも),Thymeleaf
ソースコード
実際に編集するのはひな形のmainの中のみ。書籍とも重複するのでGitHubリポジトリを添付し説明は割愛します。以下はリポジトリのリンク
SpringBoot+Groovyで簡単なアプリケーションを作成してみる
テンプレートの利用
Groovyには専用のHTMLテンプレートがあり書籍内でも紹介されてはいるが、Thymeleafの利用が推奨されている。Groovyテンプレートは書籍内で紹介があったため導入したが、正直Thymeleafの方が格段にわかりやすい。
困った点
Grabアノテーションを使用際に以下のようなエラーが発生した。
エラー:Groovyc: While compiling groovyapp: Cannot @Grab without Ivy, please add it to your module dependencies (NoClassDefFoundError: org/apache/ivy/plugins/resolver/DependencyResolver)
書籍内ではGrabアノテーションを使用してThymeleafの読み込みを行っているが、今回はSpringBootCLIを利用していないため依存関係を追加する手間がないEnableAutoConfigurationアノテーションを使用することで自動読み込みさせることにした。