モジュール java.desktop
パッケージ javax.imageio.spi

クラスIIORegistry



  • public final class IIORegistry
    extends ServiceRegistry
    サービス・プロバイダ・インスタンスのレジストリです。 サービス・プロバイダ・クラスは、実行時にこれらのクラスを含むJARファイル内のメタ情報を使用して検出できます。 目的は、比較的少ない負荷で、使用可能なサービス・プロバイダ・クラスすべてのロードおよび検査を行うことです。 その後、これらのクラスを使用して、実作業を実行する負荷の高いクラスの検出およびインスタンス化を実行します。この場合は、ImageReaderImageWriterImageTranscoderImageInputStream、およびImageOutputStreamのインスタンスになります。 Javaプラットフォームから検出されたサービス・プロバイダは、このクラスがインスタンス化されるとすぐに自動的にロードされます。

    registerApplicationClasspathSpisメソッドが呼び出されると、アプリケーションのクラス・パスのJARファイルのメタ情報セクションで宣言されたサービス・プロバイダ・インスタンスがロードされます。 サービス・プロバイダを宣言するために、servicesサブディレクトリが各JARファイルに存在するMETA-INFディレクトリ内に配置されます。 このディレクトリには、JARファイルに1つまたは複数の実装クラスを保持する各サービス・プロバイダ・インタフェースに対して1つのファイルが含まれます。 たとえば、JARファイルにImageReaderSpiインタフェースを実装するcom.mycompany.imageio.MyFormatReaderSpiというクラスが含まれる場合、JARには次の名前のファイルが含まれます。

     META-INF/services/javax.imageio.spi.ImageReaderSpi
     
    また、次の行が含まれます。
     com.mycompany.imageio.MyFormatReaderSpi
     

    サービス・プロバイダ・クラスの特性は、軽量で迅速なロードが可能であることです。 これらのインタフェースの実装は、ほかのクラスやネイティブ・コードに複雑に依存しないようにする必要があります。

    自動的に検出されないサービス・プロバイダを手動で追加することも、ServiceRegistryクラスのインタフェースを使用するサービス・プロバイダを削除することもできます。 したがって、アプリケーションでレジストリの内容を必要に応じてカスタマイズできます。

    サービス・プロバイダの宣言とJARフォーマットの一般的な詳細については、「JARファイルの仕様」を参照してください。

    • メソッドの詳細

      • getDefaultInstance

        public static IIORegistry getDefaultInstance​()
        イメージ入出力APIで使用されるデフォルトのIIORegistryインスタンスを返します。 このインスタンスはすべてのレジストリ関数で使用されます。

        ThreadGroupは独自のインスタンスを受け取ります。これにより、たとえば同じブラウザの別のAppletがそれぞれ独自のレジストリを持つことができます。

        戻り値:
        現在のThreadGroupのデフォルト・レジストリ。
      • registerApplicationClasspathSpis

        public void registerApplicationClasspathSpis​()
        アプリケーションのクラス・パスで検出されたすべての使用可能サービス・プロバイダを、デフォルトのClassLoaderを使用して登録します。 このメソッドは通常ImageIO.scanForPluginsメソッドから呼び出されます。
        関連項目:
        ImageIO.scanForPlugins(), ClassLoader.getResources(java.lang.String)