Module  java.desktop
软件包  javax.imageio.spi

Class IIORegistry



  • public final class IIORegistry
    extends ServiceRegistry
    服务提供商实例的注册表。 可以通过在包含它们的JAR文件中的元信息在运行时检测服务提供者类。 意图是加载和检查所有可用的服务提供商类是相对便宜的。 这些类可以在它们被用来定位和实例在这种情况下,情况更重量级的类,将执行工作实际, ImageReaderImageWriterImageTranscoderImageInputStream ,并ImageOutputStream 一旦该类被实例化,从Java平台发现的服务提供者就会自动加载。

    当调用registerApplicationClasspathSpis方法时,将加载在应用程序类路径上的JAR文件的元信息部分中声明的服务提供程序实例。 要声明服务提供商, services子目录将放置在每个JAR文件中的META-INF目录中。 此目录包含每个服务提供程序接口的文件,该接口在JAR文件中具有一个或多个实现类。 例如,如果JAR文件包含一个名为com.mycompany.imageio.MyFormatReaderSpi的类,该类实现了ImageReaderSpi接口,则JAR文件将包含一个名为

      META-INF/services/javax.imageio.spi.ImageReaderSpi 
    包含行:
      com.mycompany.imageio.MyFormatReaderSpi 

    服务提供商类旨在轻量化并快速加载。 这些接口的实现应避免对其他类和本地代码的复杂依赖。

    也可以手动添加未自动找到的服务提供者,并删除那些正在使用ServiceRegistry类接口的服务提供商。 因此,应用程序可以根据自己的需要定制注册表的内容。

    有关声明服务提供商的更多详细信息以及JAR格式,请参阅JAR File Specification

    • 方法详细信息

      • getDefaultInstance

        public static IIORegistry getDefaultInstance​()
        返回Image I / O API使用的默认IIORegistry实例。 该实例应用于所有注册表功能。

        每个ThreadGroup都会收到自己的实例; 这允许不同的Applet在同一个浏览器(例如),每个都有自己的注册表。

        结果
        目前的默认注册表为 ThreadGroup
      • registerApplicationClasspathSpis

        public void registerApplicationClasspathSpis​()
        注册应用程序类路径中找到的所有可用服务提供商,使用默认的ClassLoader 这种方法通常由ImageIO.scanForPlugins方法调用。
        另请参见:
        ImageIO.scanForPlugins(), ClassLoader.getResources(java.lang.String)