|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object
|
+--javax.imageio.spi.ServiceRegistry
|
+--javax.imageio.spi.IIORegistry
サービスプロバイダインスタンスのレジストリです。サービスプロバイダクラスは、実行時にこれらのクラスを含む JAR ファイル内のメタ情報を使用して検出できます。目的は、比較的少ない負荷で、使用可能なサービスプロバイダクラスすべてのロードおよび検査を行うことです。その後、これらのクラスを使用して、実作業を実行する負荷の高いクラスの検出およびインスタンス化を実行します。この場合は、ImageReader、ImageWriter、ImageTranscoder、ImageInputStream、および ImageOutputStream のインスタンスになります。
システムのクラスパス (たとえば、Sun の J2SDK 実装では jre/lib/ext ディレクトリ) で検出されたサービスプロバイダが、このクラスがインスタンス化されるとすぐに自動的にロードされます。
registerApplicationClasspathSpis メソッドが呼び出されると、アプリケーションのクラスパスの JAR ファイルのメタ情報セクションで宣言されたサービスプロバイダインスタンスがロードされます。サービスプロバイダを宣言するには、各 JAR ファイルに存在する META-INF ディレクトリ内に services サブディレクトリを配置します。このディレクトリ内には、JAR ファイル内に存在する 1 つ以上の実装クラスを保持するサービスプロバイダインタフェースごとに 1 つのファイルが含まれます。たとえば、JAR ファイルが ImageReaderSpi インタフェースを実装するクラス com.mycompany.imageio.MyFormatReaderSpi を含む場合は、JAR ファイルには次の名前のファイルが含まれます。
META-INF/services/javax.imageio.spi.ImageReaderSpiまた、次の行が含まれます。
com.mycompany.imageio.MyFormatReaderSpi
サービスプロバイダクラスの特性は、軽量で迅速なロードが可能であることです。このため、これらのインタフェースの実装は、他のクラスやネイティブコードに複雑に依存しないようにする必要があります。
自動的に検出されないサービスプロバイダを手動で追加することも、ServiceRegistry クラスのインタフェースを使用するサービスプロバイダを削除することもできます。したがって、アプリケーションでレジストリの内容を必要に応じてカスタマイズできます。
サービスプロバイダ宣言の詳細および JAR 形式全般については、 「JAR File Specification」を参照してください。
| 入れ子クラスの概要 |
| クラス javax.imageio.spi.ServiceRegistry から継承した入れ子クラス |
ServiceRegistry.Filter |
| メソッドの概要 | |
static IIORegistry |
getDefaultInstance()
イメージ入出力 API で使用されるデフォルトの IIORegistry インスタンスを返します。 |
void |
registerApplicationClasspathSpis()
アプリケーションのクラスパスで検出されたすべての使用可能サービスプロバイダを、デフォルトの ClassLoader を使用して登録します。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| メソッドの詳細 |
public static IIORegistry getDefaultInstance()
IIORegistry インスタンスを返します。このインスタンスはすべてのレジストリ関数で使用されます。
各 ThreadGroup は独自のインスタンスを受け取ります。これにより、たとえば同じブラウザの別の Applet がそれぞれ独自のレジストリを持つことができます。
ThreadGroup のデフォルトレジストリpublic void registerApplicationClasspathSpis()
ClassLoader を使用して登録します。このメソッドは通常 ImageIO.scanForPlugins メソッドから呼び出されます。
ImageIO.scanForPlugins(),
ClassLoader.getResources(java.lang.String)
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.