■Spring Boot の小径 第4歩 Spring Boot 匍匐前進 |
4-2)入力チェック |
■SpringMVC の小径 7-2)入力チェックで実験した 入力検証(Validation Check)を、Spring Boot でやってみます。 構成は、7-2)入力チェックで使ったものをそのまま流用します。 コントローラ:src/main/java/jp/dip/arimodoki/cntl/Promenade.java FormBean :src/main/java/jp/dip/arimodoki/model/PromenadeForm.java View(HTML):src/main/resources/templates/promenade.html src/main/resources/templates/promenaderes.html メッセージリソース:src/main/resources/ValidationMessages.properties ここまでは、配置場所の違いはあるものの、基本的には前とほぼ同じです。 今回新しく追加したクラス メッセージコンフィグレータ:src/main/java/jp/dip/arimodoki/config/MessageConfig.java |
ではそれぞれのソースを簡単に説明します 1)コントローラ src/main/java/jp/dip/arimodoki/cntl/Promenade.java 以前から基本的には変わっていませんが、 今回、■応用の森 Eclipse編で導入した、 Lombokプラグインで、Accesor(getter/setter)自動生成を行うようにしたため、 その弊害で、クラスのインターフェース自動抽出ができなくなったので、 以前とちょっとだけ違う部分があります。 DIする対象が、インターフェースではなく、クラスの実体に変わっています。 ロジック的には全く同じですが、前と異なる部分を赤字にしてみました。 |
2)FormBean src/main/java/jp/dip/arimodoki/model/PromenadeForm.java これも、以前から基本的には変わっていませんが、 Lombokプラグインで、Accesor(getter/setter)自動生成を行うようにしたため、 Accesor(getter/setter)メソッドがごっそりなくなっています。 さらに、インターフェース(PromenadeFormIf)も外してあります。 前と異なる部分だけ赤字にしてみました。 |
3)View(HTML) 入力表示用HTML:src/main/resources/templates/promenade.html 入力結果表示用HTML:src/main/resources/templates/promenaderes.html 以前のSpringMVCの時の、WebContentから src/main/resources/templates に配置場所が変わっているだけで内容はほぼ同じです。 一点だけ違うところ。promenade.htmlの、<form>タグの actionで指定されるURLが、 "./promenaderes.xhtml" から拡張子がなくなって、"./promenaderes" になっています。 |
4)メッセージリソース src/main/resources/ValidationMessages.properties これも以前のSpringMVCの時の、WebContent/WEB-INF/classes から src/main/resources に配置場所が変わっているだけで内容は全く同じです。 |
5)メッセージコンフィグレータ src/main/java/jp/dip/arimodoki/config/MessageConfig.java SpringMVCの時は、入力検証で型変換エラーが発生した場合デフォルトの長ったらしいメッセージを回避するために、 Spring設定ファイル(applicationContext.xml)。でメッセージリソースコンフィグ <bean id="messageSource">・・・</bean> を定義しましたが Spring Boot では、XML定義が使えないので、コンフィグレーションクラスを定義しています。 このクラスを、@Configurationアノテーション宣言で作っておくと、 Spring Bootの起動時に自動的にDIコンテナに登録されます。 |
では、どんな動きをするかちょっとだけ確認してみましょう。 前節の3-1)Hello Spring Boot !! の方法でアプリケーションを起動し、 ブラウザのURLに「http://localhost:8080/promenade」を入力します。 |
![]() |
入力画面が表示されたら、色々いぢわるな答えを書いてみてください。 |
![]() |
真面目に回答してみましょう。 |
![]() |
いかがでしたか?。 SpringMVCでは、Spring設定ファイル(applicationContext.xml)で定義していたものが、 アノテーション宣言に変わったり、 @Configurationアノテーションを宣言したクラスに置き換わったりするだけで 基本的には、SpringMVCで作ったソースはほぼそのまま流用できました。 |
4-1)コンポーネントスキャン ![]() |
4-2)入力チェック |
![]() |