Child injectors (aka. chained injectors, hierarchical injectors) enable injectors that inherit state from another injector. This is useful for splitting up the aspects of an application -- perhaps into a user interface injector and a persistence injector. Or to maintain separate instances of a subapplication, such as the individual workspaces of an IDE. Child injectors are intended for frameworks and extensions, so most users won't encounter them directly.
I've recently rewritten Guice's implementation from scratch. The new implementation is tighter. For example, it prevents bindings from overlapping in parent and child. If you're using the current implementation from SVN, please try out the new code. Any incompatibilities should show up in the form of errors when you create your injector. The API has also moved from a static method on the Guice class to an instance method on Injector. Here's the new method's Javadoc (from Injector.java): /** * Returns a new injector that inherits all state from this injector. All * bindings, scopes, interceptors and type converters are inherited -- they * are visible to the child injector. Elements of the child injector are not * visible to its parent. * * <p>Just-in-time bindings created for child injectors will be created in an * ancestor injector whenever possible. This allows for scoped instances to be * shared between injectors. Use explicit bindings to prevent bindings from * being shared with the parent injector. * * <p>No key may be bound by both an injector and one of its ancestors. This * includes just-in-time bindings. The lone exception is the key for [EMAIL PROTECTED] * Injector.class}, which is bound by each injector to itself. */ Injector createChildInjector(Iterable<? extends Module> modules); You can find this update in Guice SVN. Cheers, Jesse --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
