首先在META-INF/services
里面撰写文件,文件名为io.weli.HelloProvider
。
Created
August 14, 2018 06:59
-
-
Save liweinan/10d0807a6df7dd03b077bb12d55f06c9 to your computer and use it in GitHub Desktop.
Author
liweinan
commented
Aug 14, 2018
撰写同名接口如下:
package io.weli.serviceloader;
import java.util.ServiceLoader;
public abstract class HelloProvider {
public static HelloProvider getDefault() {
ServiceLoader<HelloProvider> ldr = ServiceLoader.load(HelloProvider.class);
for (HelloProvider provider : ldr) {
//We are only expecting one
return provider;
}
throw new Error("No HelloProvider registered");
}
public abstract String getMessage();
}
撰写使用代码:
package io.weli.serviceloader;
/**
* Created by liweinan on 7/7/14.
*/
public class Main {
/*
* mvn exec:java -Dexec.mainClass="io.weli.serviceloader.Main"
*/
public static void main(String[] args) {
HelloProvider provider = HelloProvider.getDefault();
System.out.println("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
System.out.println(provider.getMessage());
System.out.println("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment