<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>${guice.version}</version>
</dependency>
<dependency>
<groupId>com.peaberry</groupId>
<artifactId>peaberry-dynamic-services</artifactId>
<version>${peaberry.version}</version>
</dependency>
import com.google.inject.Binder;
import com.peaberry.dynamicservices.DynamicService;
public class CustomGuiceModule extends AbstractModule {
@Override
protected void configure() {
bind(DynamicService.class).to(YourDynamicService.class);
}
}
import com.google.inject.Guice;
import com.google.inject.Injector;
public class Main {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new CustomGuiceModule());
}
}
public interface MyDynamicService {
String doSomething();
}
public class MyDynamicServiceImpl implements MyDynamicService {
@Override
public String doSomething() {
return "Hello, Peaberry Dynamic Services!";
}
}
import com.peaberry.dynamicservices.ServiceLocator;
public class SomeClass {
private final ServiceLocator serviceLocator;
public SomeClass(ServiceLocator serviceLocator) {
this.serviceLocator = serviceLocator;
}
public String getDynamicServiceResult() {
return serviceLocator.locate(MyDynamicService.class).doSomething();
}
}