個々の容器間のOSGIクラスローダが分離する方法であります

個々の容器間のOSGIクラスローダが分離する方法であります

OSGiのはどのようなものです:

OSGiモジュール性は、Javaプラットフォーム用の動的な機能を提供します

 

OSGiの特徴:

いいえJavaのようなライブラリやJavaのような基本的な実装しない、仮想マシンと他の修飾、モジュール間のOSGi実装および単離を参照し、キー不活性で有効ダイナミックモジュールは、クラスローダのアーキテクチャを拡張することです。

OSGiのクラスローディングアーキテクチャが定義された厳格な規則によって子バンドルからクラスをロードするために、クラスローダに焦点を推奨するJava親委任モデル(親委任モデル)に従っていません。

各正しく解析バンドルは、別々のクラスローダをサポートしている、このクラスローダバンドル:バンドルの各バンドルのクラスおよびリソースこれをロードするための独自の個別のクラスローダを持っています。別のバンドルのバンドルパッケージをロードするための要求は、クラスでエクスポートする場合は、バンドル派生クラスローダ処理にデリゲートをローダべきであり、他のクラスをロードするためにバンドルを所有することはできません。エージェント・ネットワーク・アーキテクチャを構成するクラスをロードするために相互運用可能なクラスローダとの間のいくつかは、メッシュはなく、従来のJavaクラスローディングツリーアーキテクチャよりも、OSGiのクラスローディングアーキテクチャを採用しています。

 

クラスローダのOSGi:

親クラスローダ:直接Javaプラットフォームによって提供される最も一般的なシナリオは、クラスローダ(ブートストラップクラスローダ)を開始、拡張されたクラスローダ(拡張クラスローダ)とアプリケーション・クラス・ローダー(アプリケーションクラスローダ)が含まれ、 "がロードされていますJavaの。*「親クラスローダに親クラスのデリゲート内で宣言されるクラスとデリゲートのリストの先頭には、クラスをロードします。

クラスローダをバンドル:それぞれがクラスをロードする存在バンドルおよびリソースのための独自の個別のクラスローダを持っているバンドル。別のバンドルのバンドルパッケージをロードするための要求は、クラスでエクスポートする場合は、バンドル派生クラスローダ処理にデリゲートをローダべきであり、他のクラスをロードするためにバンドルを所有することはできません。

他のローダー:このようなスレッドコンテキストクラスローダは、クラスローダフレームなど。そのようなフレーム・クラス・ローダとして、これを達成するOSGiフレームワークは、一般に、サービス・インターフェース実装クラスローディングフレームのクラスキーのフレームとクラスローダを分離します。彼らは、特にOSGiの仕様で定義されていませんが、達成を容易にするために、多くのOSGiフレームワークで使用されます。

 

おすすめ

転載: www.cnblogs.com/jetqiu/p/11669084.html