It's not exactly what I was trying to achieve, but it did give me an idea.
Can I do something like this with a single module:
class MyModule extends AbstractModule
{
public MyModule()
{
appSet = AppSettingsService.getInstance();
}
final AppSettingsService appSet;
public void configure()
{
// use appSet to configure this module
}
@Provides
@Singleton
AppSettingsService provideAppSettingsService()
{
return appSet;
}
}
I need AppSettingsService to configure this module and I also need to
bind it for the rest of the app as a Singleton. Do you see any issues
with this code or a better way ?
Thanks,
Warren Bell
On 2/23/12 11:44 AM, Noctarius wrote:
> Hi Warren,
>
> what I mean is something like the following (just written down,
> could be made nice by using constants etc).
>
> interface Foo {
>
> }
>
> class FooImplStandard implements Foo {
>
> }
>
> class FooImplSpecial implements Foo {
>
> }
>
> class FooProvider implements Provider<Foo> {
>
> @Inject @Named("Foo")
>
> private String implementation;
>
> @Inject
>
> private Injector injector;
>
>
>
> public Foo get() {
>
> if ("Standard".equals(implementation))
>
> return injector.getInstance(FooImplStandard.class);
>
> else
>
> return injector.getInstance(FooImplSpecial.class);
>
> }
>
> }
>
> class FirstModule extends AbstractModule {
>
> public void configure() {
>
> bindConstant().annotatedWith(Names.named("Foo")).to("Standard");
>
> }
>
> }
>
> class SecondModule extends AbstractModule {
>
> public void configure() {
>
> bind(Foo.class).toProvider(FooProvider.clas).in(Singleton.class);
>
> }
>
> }
>
>
> Am 23.02.2012 20:36, schrieb Warren Bell:
>> Can you elaborate a little ?
>>
>> Thanks,
>>
>> Warren Bell
>>
>> On 2/23/12 10:03 AM, Noctarius wrote:
>>> Why not use a Provider implementation with the injected depedency?
>>>
>>> Am 23.02.2012 18:30, schrieb Warren:
>>>> I have 2 modules, module1 and module2. I bind a type1 in module1 and I
>>>> then need to inject type1 into module2. I have tried the
>>>> createChildInjector, but have run into problems doing it that way.
>>>> What is the best way to do this?
>>>>
>>>> Thanks
>>>>
>>>> Warren Bell
>>>>
>
--
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.