cies at run time. Moreover, the injector can verify that all
 dependencies have been satisfied at <i>build time</i>. A service locator,
 by contrast, cannot detect unsatisfied dependencies until run time.

 <p>Injector implementations can take many forms. An injector could
 configure itself using XML, annotations, a DSL (domain-specific language),
 or even plain Java code. An injector could rely on reflection or code
 generation. An injector that uses compile-time code generation may not even
 have its own 