public class MyLibraryModule extends AbstractGinModule {
@Override
protected void configure() {
bind(Service.class).to(MyServiceImpl.class);
bindConstant().annotatedWith(Names.named("maxRetries")).to(3);
bind(DataSource.class).toProvider(DatabaseDataSourceProvider.class).in(Singleton.class);
}
}
@GinModules(MyLibraryModule.class)
public interface MyLibraryGinjector extends Ginjector {
MyLibrary getMyLibrary();
}
public class MyLibrary {
private final Service service;
@Inject
public MyLibrary(Service service) {
this.service = service;
}
public void doSomething() {
}
}
<inherits name="com.google.gwt.inject.Inject"/>
public class MyLibrary {
private final Service service;
@Inject
public MyLibrary(Service service) {
this.service = service;
}
public void doSomething() {
service.doWork();
}
}