<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-reflect</artifactId>
<version>1.0.0</version>
</dependency>
public interface MessageService {
void send(String message);
}
public class EmailService implements MessageService {
public void send(String message) {
System.out.println("Sending email: " + message);
}
}
public class MyModule extends AbstractModule {
protected void configure() {
GuiceReflectionBinder.create(binder())
.bind(MessageService.class).to(EmailService.class);
}
}
public class MyApp {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new MyModule());
MessageService messageService = injector.getInstance(MessageService.class);
messageService.send("Hello, Guice Bean Reflection!");
}
}