For complex graphs like this I would just write a builder that assembled the structure correctly. There are some things that Guice shouldn't be shoe-horned into doing. =)
Dhanji. On Fri, Aug 20, 2010 at 7:23 PM, Stuart McCulloch <[email protected]> wrote: > On 20 August 2010 16:16, dg <[email protected]> wrote: > >> >> I don't know a direct way in Guice to do this. However, depending on >> the structure of your objects, you might be able to get away with >> something like this >> >> class MyModule implements Module { >> [snip] >> @Provides >> provide MasterBean( ContextBean ctx, OtherDep dep ) { >> return new MasterBean( new SubBean1( ctx ), new SubBean2( ctx ), >> otherDep ); >> } >> } >> >> It's not ideal, but... >> > > you could also use the AssistedInject extension to pass on the > context to the sub beans while still using Guice to inject them > > for complex graphs another solution is to use child injectors: > > > http://stackoverflow.com/questions/3014140/dependency-injection-scoping-by-region-guice-spring-whatever > > HTH > > -d >> >> On Aug 18, 7:43 am, Olli <[email protected]> wrote: >> > Hi, >> > >> > I'm struggling with injecting one instance into two different beans. >> > >> > Here is my bean structure: >> > >> > - MasterBean >> > - SubBean1 >> > - SubBean2 >> > >> > MasterBean get both SubBean's injected, the SubBean's does not know >> > each other. >> > Both SubBeans get's one ContextBean instance injected. >> > >> > The scope of the ContextBean should be attached to the MasterBean, so >> > when I create a new MasterBean, two new SubBean's should be created >> > and one ContextBean which is being injected into the two SubBeans. >> > >> > Using a singleton is not really a solution because it limits the >> > MasterBean to one instance. Another solution would be an additional >> > Guice-Scope, but this a little bit overkill I think... :-( >> > >> > Any ideas how to solve this? >> > >> > Regards, >> > Oliver >> >> -- >> 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]<google-guice%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-guice?hl=en. >> >> > > > -- > Cheers, Stuart > > -- > 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]<google-guice%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- 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.
