タグ

validationとjavaに関するkatsushのブックマーク (3)

  • バリデーション解体新書 - kawasima

    バリデーション解体新書 2025/4/8に開催した #アーキ部 『バリデーション解体新書』の内容を編集したものです。 バリデーションとは何か? 広義には、 何らかの処理を実施するにあたって、入力データが想定する条件を満たすかを検証する行為 と言える。 この定義で、アプリケーションのどこでバリデーションをしているのかを考えると、以下のように各層にそれが見られる。 このように実装される場所が散らばるので、「バリデーション」や「入力チェック」を分類して開発ガイドラインを作ることが多い。 例えば、大規模Java開発向けのTERASOLUNA開発ガイドラインを見てみると、 ユーザーが入力した値が不正かどうかを検証することは必須である。 入力値の検証は大きく分けて、 1. 長さや形式など、文脈によらず入力値だけを見て、それが妥当かどうかを判定できる検証 2. システムの状態によって入力値が妥当かどうか

    バリデーション解体新書 - kawasima
  • Spring Bootで入力値の検証(バリデーション)の順番を制御する - かずきのBlog@hatena

    okazuki.hatenablog.com 基的に上の記事の通りでいいんですが、複数の属性を同じプロパティにつけた場合に、一気にバリデーションが実行されてエラーメッセージがうざいことになってしまいます。例えば以下のようなBeanがあったとして。 package okazuki.validationEdu; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotEmpty; public class Person { @NotEmpty(message = "なまえ入れてね") @Length(min = 1, max = 10, message = "1~10の間") private String name; public String getNa

    Spring Bootで入力値の検証(バリデーション)の順番を制御する - かずきのBlog@hatena
  • Spring BootでBean Validation (1) @GroupSequenceで順番にチェック - 親バカエンジニアのナレッジ帳

    Spring Bootでは(Spring Boot以外にもBean Validation使ってるやつ全部ですが)、Serializableクラスに対して 「org.hibernate.validator.constraints」や「javax.validation.constraints」を使って、 @NotEmptyや@Sizeといったようにアノテーションを使うだけでバリデーションを行うことができます。 入力値を見て、アノテーションの制約に違反していれば勝手にエラーを検知してくれるのですが、 (処理を途中で止めたりエラー内容を画面に表示させるのは手動でやらなければいけません。) 1つのフィールドに対して複数のアノテーションを付与した場合はすべてのエラーチェックが走り、 エラーメッセージも複数出力される可能性があります。 例えば、以下のようなコードがあった場合、 @NotEmpty @Si

    Spring BootでBean Validation (1) @GroupSequenceで順番にチェック - 親バカエンジニアのナレッジ帳
  • 1