1.2.2. JBoss EAP 6 で使用されるモジュールと新しい Modular Class Loading System について
1.2.2.1. モジュール リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
モジュールは、クラスローディングおよび依存関係管理に使用されるクラスの論理グループです。JBoss EAP 6 は、静的モジュールと動的モジュールと呼ばれることもある 2 つの異なるタイプのモジュールを識別します。ただし、2 つの違いは、パッケージ方法だけです。
- 静的モジュール
- 静的モジュールは、アプリケーションサーバーの
EAP_HOME/modules/ディレクトリーで事前定義されます。各サブディレクトリーは 1 つのモジュールを表し、設定ファイル (module.xml) と必要な JAR ファイルを含むmain/サブディレクトリーを定義します。モジュールの名前は、module.xmlファイルで定義されています。アプリケーションサーバーが提供するすべての API は、Java EE API や JBoss Logging などの他の API を含む静的モジュールとして提供されます。例1.1 module.xml ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow モジュール名、com.mysql、main/サブディレクトリー名を除いて、モジュールのディレクトリー構造と一致する必要があります。JBoss EAP ディストリビューションで提供されるモジュールは、EAP_HOME/modulesディレクトリー内のsystemディレクトリーにあります。このため、サードパーティーによって提供されるモジュールから分離されます。JBoss EAP 6.1 以降の上にレイヤー化された Red Hat が提供するレイヤード製品も、systemディレクトリー内にモジュールをインストールします。カスタム静的モジュールの作成は、同じサードパーティーライブラリーを使用する同じサーバー上に多くのアプリケーションがデプロイされる場合に役立ちます。これらのライブラリーを各アプリケーションとバンドルする代わりに、JBoss 管理者はこれらのライブラリーが含まれるモジュールを作成およびインストールできます。アプリケーションは、カスタム静的モジュールで明示的な依存関係を宣言できます。モジュールレイアウトごとに 1 つのディレクトリーを使用して、カスタムモジュールがEAP_HOME/modulesディレクトリーにインストールされるようにする必要があります。こうすると、同梱されたバージョンではなく、systemディレクトリーに存在するカスタムバージョンのモジュールがロードされるようになります。これにより、ユーザー提供のモジュールがシステムモジュールよりも優先されます。JBOSS_MODULEPATH環境変数を使用して JBoss EAP がモジュールを検索する場所を変更する場合は、指定された場所の 1 つでsystemサブディレクトリー構造を探します。システム構造体は、JBOSS_MODULEPATHで指定された場所のどこかに存在する必要があります。 - 動的モジュール
- 動的モジュールは、各 JAR または WAR デプロイメント (または、EAR 内のサブデプロイメント) に対してアプリケーションサーバーによって作成およびロードされます。動的モジュールの名前は、デプロイされたアーカイブの名前に由来します。デプロイメントはモジュールとしてロードされるため、依存関係を設定し、他のデプロイメントで依存関係として使用することが可能です。
モジュールは必要な場合にのみロードされます。通常、モジュールは、明示的または暗黙的な依存関係があるアプリケーションがデプロイされる場合にのみロードされます。