本製品での Bean 検証の使用
Java™ Enterprise Edition (Java EE) 7 仕様には、Bean Validation 1.1 API が含まれています。これは、アプリケーションのすべての層で JavaBeans を検証するための標準メカニズムです。
このタスクについて
Bean Validation の仕様が規定される前には、各層で JavaBeans の検証が行われていました。 各層での検証の再実装を避けるため、開発者は、検証をクラスに直接組み込んだり、 検証のコードをコピーしたりしていました。そのため、多くの場合、コードは 乱雑になりがちでした。 アプリケーションのすべての層に共通する 1 つの実装にまとめることは、 開発者の作業の合理化と時間の節約になります。
Bean 検証は、アプリケーションのすべての層で 共通です。Web アプリケーションには、具体的に次の層があります。- プレゼンテーション
この層は、ユーザーがアプリケーションと対話する方法を表し、シン・クライアントまたは リッチ・クライアント上に構築できます。
- ビジネス
この層は、アプリケーションを調整し、コマンドを処理し、 論理的決定や評価を下し、計算を実行します。 また、他の 2 つの層の間でデータを移動し、処理します。EJB には、WebSphere® Application Server のビジネス・ロジックが含まれています。
- データ・アクセス
ユーザーのデータは、この層にあるデータベースまたはファイル・システムに 保管され、そこから取り出されます。データは、ビジネス層によって処理され、使用可能フォームで ユーザー・インターフェースに送信されます。WebSphere Application Server は、いくつかのデータベースをサポートするほか、 データを取得するいくつかのメソッドをサポートします。この層でパーシスタンスの定義も 行います。
WebSphere Application Server の場合、これらの層は、 アプリケーションを開発およびデプロイするために必要な、製品内の いくつかのコンポーネントを使用して構築および管理されます。
本製品は、Java Servlets, Enterprise JavaBeans、Java Persistence API (JPA) 2.1、Java EE Connector API (JCA) 1.7、および Java ServerFaces (JSF) 2.2 を含む複数の Java EE テクノロジーで Bean 検証サービスを提供することで、Java Platform, Enterprise Edition (Java EE) 環境の Bean Validation API をサポートします。 Bean 検証は、統合された標準環境で データ保全性を維持する手段をこれらのテクノロジーに提供します。
エンタープライズ・アプリケーション開発には、 アプリケーション・サーバー環境でアセンブルおよびデプロイされる、非常に多くの アプリケーションやモジュールを開発する複数のチームが関係します。本製品により、各アプリケーションおよびモジュールのデータを 個別に検証できます。検証は、そのアプリケーションやモジュール向けに定義された 制約のみを使用して実行されます。
次のタスク
- データ・アクセス・リソース
本製品は、JCA バージョン 1.7 仕様に従ってリソース・アダプター・アーカイブ (RAR) Enterprise JavaBeans (EJB) 制約を検証します。 リソース・アダプターでは、標準装備の Bean Validation 制約アノテーションを使用するか、独自の Bean Validation XML 構成を提供して、リソース・アダプター構成プロパティーの検証要件をアプリケーション・サーバーに対して指定できます。
- JPA での Bean 検証の使用
JPA 2.1 仕様で定義された新機能に、Bean Validation API とのシームレスな統合機能があります。 JPA 2.1 を最小限の労力で、ランタイム・データ検証の検証プロバイダーと結合できます。 これら 2 つのテクノロジーを結合することで、標準化されたデータ検証を実行できる機能が追加された、 標準化されたパーシスタンス・ソリューションを手に入れることができます。
- JSF での Bean 検証の使用
JSF は、以前から Bean 検証を実行できましたが、 現在は Bean Validation 仕様のサポートを標準装備するようになりました。
- Web コンテナーでの Bean 検証の使用
Web コンテナーは、ValidatorFactory の インスタンスを提供し、それを javax.faces.validator.beanValidator.ValidatorFactory という 名前のサーブレット・コンテキスト属性に保管することで、JSF 実装がそのインスタンスを使用できるようにします。
- 組み込み可能コンテナーでの Bean 検証の使用。組み込み可能 EJB コンテナーでの Bean 検証を使用するには、javax.validation クラスがクラスパスに存在している必要があります。 以下の 2 つのいずれかの方法で、実行できます。
- ディレクトリー ${WAS_INSTALL_ROOT}¥runtimes¥ にある JPA シン・クライアントをクラスパスに含めます。JPA 2.1 の場合は com.ibm.ws.jpa-2.1.thinclient_9.0.jar を、JPA 2.0 の場合は com.ibm.ws.jpa-2.0.thinclient_9.0.jar を使用します。 詳しくは、『組み込み可能コンテナーの実行』を参照してください。
- サード・パーティーの Bean 検証プロバイダー Java アーカイブ (JAR) ファイルを組み込み可能 EJB コンテナー・ランタイムのクラスパスに含めます。
- Bean Validation 1.1 で追加された新しい API メソッドを JPA オブジェクトで使用した場合、それらのメソッドは動作しません。
- 自動コンストラクター/メソッド検証は使用不可です。
- @Inject を使用して Validator/ValidatorFactory を挿入することはできません。
- MessageInterpolator、ParameterNameProvider などのカスタム validation.xml コンポーネントを作成する場合、CDI は使用できません。