JavaTM 2 Platform
Standard Ed. 6

javax.imageio.spi
類別 IIORegistry

java.lang.Object
  繼承者 javax.imageio.spi.ServiceRegistry
      繼承者 javax.imageio.spi.IIORegistry

public final class IIORegistry
extends ServiceRegistry

用於服務提供者實例的註冊表。使用包含服務提供者類別的 JAR 檔案中的元資訊可在運行時檢測服務提供者。這是一種相對划算的載入和檢查所有可用的服務提供者類別的方式。然後可使用這些類別定位和實例化更具重量級的將執行實際工作的類別,這裡指 ImageReaderImageWriterImageTranscoderImageInputStreamImageOutputStream 的實例。

在系統類別路徑(例如,Sun 的 JDK 實作中的 jre/lib/ext 目錄)中找到的服務提供者在此類別實例化後即自動載入。

調用 registerApplicationClasspathSpis 方法時,在應用程序類別路徑中的 JAR 檔案的元資訊部分宣告的服務提供者實例將被載入。為宣告服務提供者,在每個 JAR 檔案都有的 META-INF 目錄中加入一個 services 子目錄。此目錄針對每個在 JAR 檔案中具有一個或多個實作類別的服務提供者介面都包含一個檔案。例如,假設 JAR 檔案包含了一個名為 com.mycompany.imageio.MyFormatReaderSpi 的類別,它實作 ImageReaderSpi 介面,則此 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()
          返回 Image I/O API 使用的預設 IIORegistry 實例。
 void registerApplicationClasspathSpis()
          使用預設的 ClassLoader 註冊應用程序類別路徑中找到的所有可用的服務提供者。
 
從類別 javax.imageio.spi.ServiceRegistry 繼承的方法
contains, deregisterAll, deregisterAll, deregisterServiceProvider, deregisterServiceProvider, finalize, getCategories, getServiceProviderByClass, getServiceProviders, getServiceProviders, lookupProviders, lookupProviders, registerServiceProvider, registerServiceProvider, registerServiceProviders, setOrdering, unsetOrdering
 
從類別 java.lang.Object 繼承的方法
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法詳細資訊

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)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only