# Package org.picocontainer

package org.picocontainer

This package contains the core API for PicoContainer, a compact container for working with the dependency injection pattern.

When you use PicoContainer for dependency injection, you create a new instance of `MutablePicoContainer`, register classes (and possibly `ComponentAdapter`s and component instances created through other means).

Object instances can then be accessed through the `PicoContainer` interface. The container will create all instances for you automatically, resolving their dependencies and order of instantiation. The default container implementation is the `DefaultPicoContainer` class.

An extensive user guide, a list of Frequently Asked Questions (FAQ) with answers and a lot more information is available from the PicoContainer website. You can also find various extensions, wrappers and utility libraries that are based on this core API there.

Related Packages
Package
Description
org.picocontainer.adapters
org.picocontainer.annotations
org.picocontainer.behaviors
BehaviorFactories make Behaviors which change aspects of component implementations and instances
org.picocontainer.classname
org.picocontainer.composers
Composers collaborate with ComposingMonitor to collect subsets of components for injection according to an scheme like:
org.picocontainer.containers
Containers are the main user entry point for PicoContainer.
org.picocontainer.converters
Individual String to Type converters, that PicoContainer may use to convert types where required.
org.picocontainer.injectors
InjectionFactories make Injectors which implement specific types of dependency injection
org.picocontainer.lifecycle
Alternative implementations of lifecycle strategy for use with a container.
org.picocontainer.monitors
A Monitor is something PicoContainer uses to inform on events in component instantiation and lifecycle.
org.picocontainer.parameters
org.picocontainer.references
org.picocontainer.security
org.picocontainer.visitors
Class
Description
Behavior<T>
Behaviors modify the components created by a Injector with additional behaviors
BehaviorFactory
Extends ComponentFactory to provide factory methods for Behaviors
BindKey<T>
Characteristics
Collection of immutable properties, holding behaviour characteristics.
Characteristics.ImmutableProperties
Read only property set.
ComponentAdapter<T>
A component adapter is responsible for providing a specific component instance of type <T>.
ComponentAdapter.NOTHING
ComponentFactory
A component factory is responsible for creating `ComponentAdapter` component adapters.
ComponentLifecycle<T>
ComponentMonitor
A component monitor is responsible for monitoring the component instantiation and method invocation.
ComponentMonitorStrategy
Interface responsible for changing monitoring strategy.
Converters
A facade for a collection of converters that provides string-to-type conversions.
Converting
Interface for containers that can handle string-to-object conversion in object parameters.
DefaultPicoContainer
The Standard `PicoContainer`/`MutablePicoContainer` implementation.
DefaultPicoContainer.KnowsContainerAdapter<T>
DefaultPicoContainer.LateInstance
Disposable
An interface which is implemented by components that need to dispose of resources during the shutdown of that component.
Emjection
InjectionFactory
Injector<T>
Implementers are responsible for instantiating and injecting dependancies into Constructors, Methods and Fields.
LifecycleStrategy
An interface which specifies the lifecycle strategy on the component instance.
MutablePicoContainer
This is the core interface used for registration of components with a container.
NameBinding
ObjectReference<T>
A way to refer to objects that are stored in "awkward" places (for example inside a `HttpSession` or `ThreadLocal`).
Parameter
This class provides control over the arguments that will be passed to a constructor.
Parameter.DelegateResolver
Delegate to another reolver
Parameter.NotResolved
The Parameter cannot (ever) be resolved
Parameter.Resolver
Resolver is used transitarily during resolving of Parameters.
Parameter.ValueResolver
A fixed value wrapped as a Resolver
PicoBuilder
Helps assembles the myriad items available to a picocontainer.
PicoClassNotFoundException
PicoCompositionException
Subclass of `PicoException` that is thrown when there is: - a problem initializing the container - a cyclic dependency between components occurs.
PicoContainer
This is the core interface for PicoContainer.
PicoException
Superclass for all Exceptions in PicoContainer.
PicoLifecycleException
PicoVerificationException
Subclass of `PicoException` that is thrown when a `PicoContainer` hierarchy cannot be verified.
PicoVisitor
Interface realizing a visitor pattern for `PicoContainer` as described in the GoF.
Startable
An interface which is implemented by components that can be started and stopped.