10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Bean Validation始めましょう。

Last updated at Posted at 2015-06-30

第1回 Java勉強会 in 秋葉原用の殴り書きです。

対象

Java経験が多少ある人向け

Bean Validationってなに? 

フィールド、メソッドにアノテーションをつけることで、特定のチェックルールのバリデーションを実行するための仕組み。

使うと何が嬉しいの?

nullチェックとかif文を量産せずにすむので、疲弊が少なく済む(はず)。
また、アノテーションで定義することで、そのままフィールドバリデーションのルールをJavadocに出せる。

JSR Spec

JSR 303: Bean Validation
JSR 349: Bean Validation 1.1

参照実装

Hibernate Validator

対応フレームワーク

Spring Framework

他にもありますが・・・

今までのバリデーション

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() + ")さんこんにちは!" );
}

実装例はこちら

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?