# Package org.apache.struts2.inject

package org.apache.struts2.inject
Guice (pronounced "juice"). A lightweight dependency injection container. Features include:

- constructor, method, and field injection
- static method and field injection
- circular reference support (including constructors if you depend upon interfaces)
- high performance
- externalize what needs to be and no more

- Related Packages
  Package
  Description
  org.apache.struts2
  Main XWork interfaces and classes.
  org.apache.struts2.inject.util
  Guice util classes.
- Class
  Description
  Container
  Injects dependencies into constructors, methods and fields annotated with `Inject`.
  ContainerBuilder
  Builds a dependency injection `Container`.
  ContainerBuilder.Command
  Implemented by classes which participate in building a container.
  Context
  Context of the current injection.
  DependencyException
  Thrown when a dependency is misconfigured.
  EarlyInitializable
  A marking interface that will tell CI to initialise the bean when instating the whole objects' graph
  Factory<T>
  A custom factory.
  Initializable
  Beans marked with this interface will be always initialised after the internal DI mechanism will be created.
  Inject
  Annotates members and parameters which should have their value[s] injected.
  Scope
  Scope of an injected objects.
  Scope.Strategy
  Pluggable scoping strategy.
  Scoped
  Annotates a scoped implementation class.