@AutoService 注解使用
作用: 自动创建 java SPI 的接口文件及接口对应关系
引入依赖
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service-annotations</artifactId>
<version>1.1.1</version>
</dependency>
实现
public interface IHelloService {
void sayHell();
}
@AutoService(value = IHelloService.class)
public class MyHelloService implements IHelloService{
@Override
public void sayHell() {
System.out.println("My hello");
}
}
@AutoService(value = IHelloService.class)
public class YouHelloService implements IHelloService{
@Override
public void sayHell() {
System.out.println("you hello");
}
}
//测试!!
public class IHelloServiceMain {
public static void main(String[] args) {
ServiceLoader<IHelloService> load = ServiceLoader.load(IHelloService.class);
Iterator<IHelloService> iterator = load.iterator();
while (iterator.hasNext()){
IHelloService next = iterator.next();
next.sayHell();
}
}
}
结果
My hello
you hello
可以发现,自动为我们在 META-INF/services
下创建 了接口文件