Hi Warren,
I would use a Provider and inject depending information to that
provider.
Cheers Noc
Am 13.03.2012 22:27, schrieb Warren:
> 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.