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.

Reply via email to