2013-11-26 34 views
5

假設我有一個接口com.example.Marker和我有一個實現這一點,例如com.example.MarkerImplA。爲了讓他們中的一個註冊,我需要把一個文本文件中META-INF/services/com.example.Marker看起來像這樣方法文檔中有多個SPI實現在一個JAR

com.example.MarkerImplA 

這就像一個風情萬種。現在,我在同一個jar文件中有另一個實現,例如com.example.MarkerImpl2。我如何實現第二個註冊?

回答

11

只需添加多行與完全合格的供應商的類名

所以,如果你的SPI是com.example.Marker

META-INF/services/com.example.Marker 

添加的每個實施新行

com.example.MarkerImplA 
com.example.MarkerImplB 
com.example.MarkerImplC 

詳情拿看看JAR File Specification

提供者配置文件

服務提供商通過將供應商的配置文件中的資源 目錄META-INF /服務標識本身。該文件的名稱應該由抽象服務類的完全限定名稱 組成。該文件應該包含一個由換行符分隔的獨特的具體提供者類名稱列表。空格和製表符以及空白行將被忽略。註釋 字符是'#'(0x23);在每一行上,第一個註釋字符後面的所有字符都被忽略,即 。該文件必須以UTF-8編碼。

+0

感謝這個累人的答案! – micfra

相關問題