Java EE 8の新機能の1つとして、Bean Validation 2.0(JSR 380)があります。
※Java EEとは、Java Platform, Enterprise Editionの略でエンタープライズ・ソフトウェアの標準のことで、Servlet、WebSocket、JSF、validation、EJB、JMSなどさまざまな仕様の集まりの事を指します。
もちろん、その仕様にも対応バージョンがあり、Java EE 7のJSFはバージョンが2.2となりHTML5に対応し、それ以前はHTML5に未対応となっているなど違いがあります。
これが分かって何がうれしいのかというと...
Java EE 7に対応したWebLogic(Oracleのアプリケーションサーバのソフトウェア)といったら、Java EE 7に準拠しているのでJSFは2.2が使える、つまり、HTML5対応されているんだ!といった事が分かるようになります。
■それで、Bean Validation で何ができるかというと...
電子メールアドレスを検証したり、数値が正か負かを確認したり、日付が過去か現在かをテストしたり、フィールドが空でないか、またはNullでないかをテストする制約を付けられるようになりました。
また、制約を付ける場所についても広範囲の場所で定義することができるようになり、"型引数への BeanValidation アノテーション対応"されるようになりました。
■組み込みの制約定義の例
@Email
@Positive
@PositiveOrZero
@Negative
@NegativeOrZero
@PastOrPresent
@FutureOrPresent
@NotEmpty
@NotBlank
@NotNull
@Null
制約の定義(どこでアノテーションを付けられるとか、デフォルトのメッセージはなんだ)を確認したい場合は、下記URLを参照
http://beanvalidation.org/2.0/spec/#builtinconstraints
■型引数への BeanValidation アノテーション対応でこんな事ができます!
<例:変数定義でList型の要素の検証をサポート>
// 正の整数を格納
List<@Positive Integer> numbers;
<例:メソッドの戻り値でEmail形式の文字列の検証をサポート、また、Optionalが付くことにより戻り値がnullもあり得ることになる>
public Optional<@Email String> getEmail() {
...
}
Java EE 8の新機能は、Bean Validation 以外にも多数ありますが、本日はここまで!


