package com.example;
public interface Service {
void execute();
}
package com.example;
import com.google.auto.service.AutoService;
@AutoService(Service.class)
public class MyService implements Service {
@Override
public void execute() {
System.out.println("Executing MyService");
}
}
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>1.0-rc7</version>
</dependency>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<annotationProcessors>
<annotationProcessor>com.google.auto.service.AutoService</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
</plugins>
</build>
package com.example;
import java.util.ServiceLoader;
public class Main {
public static void main(String[] args) {
ServiceLoader<Service> loader = ServiceLoader.load(Service.class);
for (Service service : loader) {
service.execute();
}
}
}