How do I change the following code so that both modules are configured
in one injector instead of two?
Injector parentInjector = Guice.createInjector(new AbstractModule()
{
@Override
protected void configure()
{
bind(AppSettingsService.class).in(Singleton.class);
}
});
AppSettingsService appSettingsService =
parentInjector.getInstance(AppSettingsService.class);
Injector childInjector = parentInjector.createChildInjector(new
ExternalDataSourcesModule(appSettingsService));
public class ExternalDataSourcesModule
{
@Override
protected void configure()
{
// use AppSettingsService to configure rest of this module
}
}
AppSettingsService needs to be bound and needs to be used in
ExternalDataSourcesModule. I have tried @Provides in
ExternalDataSourcesModule and have gotten it to work, but it doesn't
feel right having to set-up AppSettingsService as a singleton with
getInstance(), plus I would like to inject dependencies into it.
public class ExternalDataSourcesModule
{
@Provides
@Singleton
AppSettingsService provideAppSettingsService()
{
return AppSettingsService.getInstance();
}
@Override
protected void configure()
{
// use AppSettingsService to configure rest of this module
AppSettingsService appSettingsService =
AppSettingsService.getInstance()
}
}
I would like to do this:
Injector injector = Guice.createInjector(new AbstractModule()
{
@Override
protected void configure()
{
bind(AppSettingsService.class).in(Singleton.class);
}
}, new ExternalDataSourcesModule());
public class ExternalDataSourcesModule
{
@Inject
private AppSettingsService appSettingsService;
@Override
protected void configure()
{
// use appSettingsService to configure rest of this module
}
}
I think this is wanting the chicken before the egg. Using a child
injector caused other problems, see my previous post.
Any help would be appreciated.
Thanks,
Warren
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.