第1回 Java勉強会 in 秋葉原用の殴り書きです。
対象
Java経験が多少ある人向け
Bean Validationってなに?
フィールド、メソッドにアノテーションをつけることで、特定のチェックルールのバリデーションを実行するための仕組み。
使うと何が嬉しいの?
nullチェックとかif文を量産せずにすむので、疲弊が少なく済む(はず)。
また、アノテーションで定義することで、そのままフィールドバリデーションのルールをJavadocに出せる。
JSR Spec
JSR 303: Bean Validation
JSR 349: Bean Validation 1.1
参照実装
対応フレームワーク
他にもありますが・・・
今までのバリデーション
SampleBean.java
public class SampleBean {
private String name;
private int age;
// getter, setter
}
Check.java
// 略
public void sayHello(SampleBean bean) {
if (bean == null) {
throw new IllegalArgumentException("からやねん!");
}
if (bean.getName() == null && bean.getName().equals("")) {
throw new IllegalArgumentException("nameからやねん!");
}
if (bean.getAge < 0) {
throw new IllegalArgumentException("ageおかしいねん!");
}
System.out.println(bean.getName() + "(" + bean.getAge() + ")さんこんにちは!" );
}
Bean Validationを使うと
SampleBean.java
public class SampleBean {
@NotEmpty
private String name;
@Min(0)
private int age;
// getter, setter
}
以下、対応フレームワークを利用
Check.java
// 略
public void sayHello(@Valid SampleBean bean) {
System.out.println(bean.getName() + "(" + bean.getAge() + ")さんこんにちは!" );
}
実装例はこちら