概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.1.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.fukurou.util
クラス HybsLoader

    java.lang.Object
      org.opengion.fukurou.util.HybsLoader

    public class HybsLoader

extends Object

AutoCompile機能、HotDeploy機能を実現するためのクラスローダーです。 AutoCompile機能は、クラスの動的コンパイルを行います。 AutoCompile機能を有効にするには、コンストラクタで与えられるHybsLoaderConfigオブジェクトで、 AutoCompileフラグをtrueにしておく必要があります。 HotDeploy機能は、クラスの動的ロードを行います。 HotDeploy機能を有効にするには、コンストラクタで与えられるHybsLoaderConfigオブジェクトで、 HotDeployフラグをtrueにしておく必要があります。 (1)クラスの動的コンパイル `loadClass(String)`メソッドが呼ばれた場合に、ソースディレクトより、対象となるソースファイルを 検索し、クラスのコンパイルを行います。 コンパイルが行われる条件は、「クラスファイルが存在しない」または「クラスファイルのタイムスタンプがソースファイルより古い」です。 コンパイルを行うには、JDKに含まれるtools.jarが存在している必要があります。 tools.jarが見つからない場合、エラーとなります。 また、コンパイルのタスクのクラス(オブジェクト)は、JVMのシステムクラスローダー上のクラスに存在しています。 このため、サーブレットコンテナで、通常読み込まれるWEB-INF/classes,WEB-INF/lib以下のクラスファイルも、 そのままでは参照することができません。 これらのクラスを参照する場合は、HybsLoaderConfigオブジェクトに対してクラスパスを設定しておく必要があります。 (2)クラスロード クラスの動的ロードは、クラスローダーの入れ替えによって実現しています。 HotDeploy機能を有効にした場合、読み込むクラス単位にURLClassLoaderを生成しています。 クラスロードを行う際に、URLClassLoaderを新しく生成することで、クラスの再ロードを行っています。 つまり、HotDeployにより読み込まれるそれぞれのクラスは、お互いに独立した(平行な位置に存在する)関係に なります。 このため、あるHotDeployによりロードされたクラスAから、同じくHotDeployによりロードされたクラスBを直接参照 することができません。 この場合は、クラスBのインターフェースを静的なクラスローダー(クラスAから参照できる位置)に配置することで、クラスB のオブジェクトにアクセスすることができます。

機能階層
  業務ロジック
変更履歴:

  5.1.1.0 (2009/12/01) 新規作成

バージョン
  5.0
作成者
  Hiroki Nakamura
導入されたバージョン:
  JDK1.6,

コンストラクタの概要
`HybsLoader(HybsLoaderConfig option)` HybsLoaderOptionを使用してHybsLoaderオブジェクトを生成します。

メソッドの概要
`Class<?>` | `load(String clsNm)` 指定されたクラス名のクラスをロードします。
`Object` | `newInstance(String clsName)` 指定されたクラス名のクラスをロードし、デフォルトコンストラクターを使用して インスタンスを生成します。

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### HybsLoader

    public HybsLoader(HybsLoaderConfig option)

  HybsLoaderOptionを使用してHybsLoaderオブジェクトを生成します。

  パラメータ:
    `option` - HybsLoaderを構築するための設定情報

メソッドの詳細

### load

    public Class<?> load(String clsNm)

  指定されたクラス名のクラスをロードします。 クラス名については、クラス自身の名称のみを指定することができます。 (パッケージ名を含めた完全な形のクラス名を指定することもできます)

  パラメータ:
    `clsNm` - クラス名
  戻り値:
    クラス

### newInstance

    public Object newInstance(String clsName)

  指定されたクラス名のクラスをロードし、デフォルトコンストラクターを使用して インスタンスを生成します。

  パラメータ:
    `clsName` - クラス名(Qualified Name)
  戻り値:
    インスタンス

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.1.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.