public class MyModule extends AbstractModule {
@Override
protected void configure() {
bind(Service.class).to(DefaultService.class);
}
}
public interface Service {
String doSomething();
}
public class DefaultService implements Service {
@Override
public String doSomething() {
return "Hello, Airframe!";
}
}
public class MyApp {
@Inject
private Service service;
public void run() {
String result = service.doSomething();
System.out.println(result);
}
public static void main(String[] args) {
MyApp app = new MyApp();
try (Injector injector = new ReflectiveInjectorBuilder()
.modules(new MyModule())
.build()) {
injector.injectMembers(app);
}
app.run();
}
}