怠惰系エンジニアのメモ帳

勉強した内容をメモしていきます。解説ブログではないので悪しからず。

BeanValidationメモ_その2

前回に引き続き、Bean Validationについてのメモ。
今回はカスタムバリデーションについて。

記載内容に間違いなどがありましたら、指摘していただけると幸いです。

カスタムバリデーション

Bean Validationは、ユーザが独自にバリデーターを作成することが可能。
カスタムバリデーターの作成方法は2つある。

1つ目は、既存のアノテーションを組み合わせて作成する方法。
2つ目は、バリデータクラスを自作する方法。

どちらにも共通するのは、独自の制約アノテーションを作成する点。
今回は2つ目の バリデータクラスを自作する 方法のみを記載します。

作成手順

基本的には以下の順番でカスタムバリデーターを作成していくことになると思います。

  1. 独自の制約アノテーションを作成する。
  2. それに対応するバリデーターを作成する。

バリデーターに「どの制約アノテーションと関連があるか」を指定する必要があるので、 先に制約アノテーションを作成します。

続きを読む

BeanValidationメモ_その1

Bean Validationを利用した入力チェックについて調べる機会があったので、備忘を兼ねてメモ。
特に目新しいことは記載していません。

記載内容に間違いなどありましたら、指摘していただけると幸いです。

参考

以下のサイト、書籍を参考にさせていただきました。

環境

今回もSpring Boot。 Bean Validationを利用したいので spring-boot-starter-validation を依存関係に追加する。
spring-boot-starter-validation を追加することで、Bean Validationの参照実装である Hibernate Validator が利用できるようになる。

Hibernate Validator のバージョンは、5.3.5.Final。

続きを読む

【Spring + Doma】ドメインクラスを、フォームクラスのフィールドとして使用する

DomaではドメインクラスというValueObjectを使用できますが、どうせならフォームクラスのフィールドとしても使用したいなと思って検証してみました。
※そもそもドメインクラスをフォームクラスのフィールドとして利用するのはどうなのか、という疑問はあります。(個人的には有りな気がしてます)
記載内容に間違いなどがありましたら、指摘をお願いします。

結果

結果から書くと、

  • ドメインクラスにString型の引数を1つ受け取る非privateなコンストラクタ、またはpublicなstaticファクトリメソッドを定義すればいい

でした。 ドメインクラスとは書いてますが、ドメインクラス以外の任意クラスにも応用できるはずです。(ドメインクラスはDoma上の表現なので当たり前ですが)

続きを読む

Spring Web Flux + Thymeleaf で画面出力する

過去に同じことやろうとしてダメだったので、リベンジ。

Spring Web Flux + Thymeleaf で画面出力したかった

内容に間違いなどがあれば指摘をお願いします。

やりたいこと

前回と同じく、SpringWebFluxThymeleaf で GetWild する。
ルーティングはアノテーションベースと、RouterFunctionsの2パターンで実施。

結論

先に結論を書くと、

  • RouterFunctionsの場合には、ServerResponse.BodyBuilder#render メソッドに、表示するビュー名を渡す。
    • 表示に必要なデータは、render メソッドの第二引数に指定する。
  • アノテーションベースの場合にはメソッドの戻り値を Mono<String> にして、ビュー名を Mono でラップする。
    • 表示に必要なデータは、SpringWebMvc の時と同じように Model 等に設定する。

です。

続きを読む

「【勉強会】20代エンジニアのキャリア論」に参加してきた

サポーターズCoLabの勉強会「【勉強会】20代エンジニアのキャリア論」に参加させていただいたので、参加した感想を書いていこうと思います。

supporterzcolab.com

参加した目的

  • 今後のキャリアをどうするか悩んでいるので、解決の糸口を掴みたかった
  • 20代エンジニアと交流がしたかった。
    • 同世代の方がどんなことを思っているのか知りたい。

のが理由として大きいです。

3年目になって、仕事のとか今後について考えることが多くなりました。
そんな時にピッタリな勉強会が開催されるということで、参加させていただきました。

続きを読む