Java >> Java Program >  >> Java

Ladda plugin-burkar dynamiskt med ServiceLoader

Problemet var väldigt enkelt. Och dum. I plugin-programmet .jar filer /services/plugintest.SimplePlugin fil saknades i META-INF katalogen, så ServiceLoader kunde inte identifiera burkarna som tjänster och ladda klassen.

Det är i stort sett allt, det andra (och renare) sättet fungerar som en charm.


Från och med Java 9 kommer tjänsten som tillhandahåller skanning att vara mycket enklare och effektiv. Inget längre behov av META-INF/services .

I gränssnittsmodulens deklaration deklarera:

uses com.foo.spi.Service;

Och i leverantörens modul:

provides com.foo.spi.Service with com.bar.ServiceImplementation

Java-tagg