# Uses of Interface
org.picocontainer.LifecycleStrategy

Packages that use LifecycleStrategy
Package
Description
org.picocontainer
This package contains the core API for PicoContainer, a compact container for working with the dependency injection pattern.
org.picocontainer.adapters
org.picocontainer.behaviors
BehaviorFactories make Behaviors which change aspects of component implementations and instances
org.picocontainer.classname
org.picocontainer.containers
Containers are the main user entry point for PicoContainer.
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.

## Uses of LifecycleStrategy in org.picocontainer

Fields in org.picocontainer declared as LifecycleStrategy
Modifier and Type
Field
Description
`protected final LifecycleStrategy`
DefaultPicoContainer.`lifecycleStrategy`
Lifecycle strategy instance.
Methods in org.picocontainer with parameters of type LifecycleStrategy
Modifier and Type
Method
Description
`<T> ComponentAdapter<T>`
BehaviorFactory.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`<T> ComponentAdapter<T>`
ComponentFactory.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
Create a new component adapter based on the specified arguments.
`PicoBuilder`
PicoBuilder.`withLifecycle(LifecycleStrategy specifiedLifecycleStrategy)`
Allows you to fully specify your lifecycle strategy by passing in a built instance
Method parameters in org.picocontainer with type arguments of type LifecycleStrategy
Modifier and Type
Method
Description
`PicoBuilder`
PicoBuilder.`withLifecycle(Class<? extends LifecycleStrategy> specifiedLifecycleStrategyType)`
Allows you to specify your own lifecycle strategy class.
Constructors in org.picocontainer with parameters of type LifecycleStrategy
Modifier
Constructor
Description
``
`DefaultPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent)`
Creates a new container with a custom ComponentFactory, LifecycleStrategy for instance registration, and a parent container.
``
`DefaultPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent, ComponentMonitor componentMonitor)`
``
`DefaultPicoContainer(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, PicoContainer parent)`
Creates a new container with the AdaptingInjection using a custom ComponentMonitor and lifecycle strategy
``
`DefaultPicoContainer(LifecycleStrategy lifecycleStrategy, PicoContainer parent)`
Creates a new container with the AdaptingInjection using a custom lifecycle strategy

## Uses of LifecycleStrategy in org.picocontainer.adapters

Classes in org.picocontainer.adapters that implement LifecycleStrategy
Modifier and Type
Class
Description
`final class`
`InstanceAdapter<T>`
Component adapter which wraps a component instance.
Constructors in org.picocontainer.adapters with parameters of type LifecycleStrategy
Modifier
Constructor
Description
``
`InstanceAdapter(Object componentKey, T componentInstance, LifecycleStrategy lifecycleStrategy)`
``
`InstanceAdapter(Object componentKey, T componentInstance, LifecycleStrategy lifecycleStrategy, ComponentMonitor componentMonitor)`

## Uses of LifecycleStrategy in org.picocontainer.behaviors

Classes in org.picocontainer.behaviors that implement LifecycleStrategy
Modifier and Type
Class
Description
`class`
`AbstractBehavior<T>`
Component adapter which decorates another adapter.
`class`
`Automated<T>`
`class`
`Cached<T>`
`ComponentAdapter` implementation that caches the component instance.
`class`
`Decorated<T>`
`class`
`FieldDecorated`
`class`
`Guarded<T>`
behaviour for allows components to be guarded by another component
`class`
`HiddenImplementation<T>`
This component adapter makes it possible to hide the implementation of a real subject (behind a proxy) provided the key is an interface.
`class`
`Intercepted<T>`
`class`
`Locked<T>`
`class`
`PropertyApplicator<T>`
Decorating component adapter that can be used to set additional properties on a component in a bean style.
`class`
`Stored<T>`
`class`
`Synchronized<T>`
Component Adapter that uses java synchronized around getComponentInstance().
`final class`
`ThreadCached<T>`
This behavior supports caches values per thread.
Methods in org.picocontainer.behaviors with parameters of type LifecycleStrategy
Modifier and Type
Method
Description
`<T> ComponentAdapter<T>`
AbstractBehaviorFactory.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`ComponentAdapter`
AdaptingBehavior.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter adapter)`
`ComponentAdapter`
Automating.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter adapter)`
`<T> ComponentAdapter<T>`
Caching.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`ComponentAdapter`
Decorating.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter adapter)`
`ComponentAdapter`
FieldDecorating.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter adapter)`
`<T> ComponentAdapter<T>`
Guarding.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`ComponentAdapter`
ImplementationHiding.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter adapter)`
`<T> ComponentAdapter<T>`
Locking.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`<T> ComponentAdapter<T>`
OptInCaching.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`<T> ComponentAdapter<T>`
PropertyApplying.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`<T> ComponentAdapter<T>`
Storing.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`<T> ComponentAdapter<T>`
Synchronizing.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`<T> ComponentAdapter<T>`
ThreadCaching.`addComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, ComponentAdapter<T> adapter)`
`<T> ComponentAdapter<T>`
AbstractBehaviorFactory.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`ComponentAdapter`
AdaptingBehavior.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class componentImplementation, Parameter... parameters)`
`ComponentAdapter`
Automating.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
Caching.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`ComponentAdapter`
Decorating.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class componentImplementation, Parameter... parameters)`
`ComponentAdapter`
FieldDecorating.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
Guarding.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`ComponentAdapter`
ImplementationHiding.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
Intercepting.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
Locking.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
Create a new component adapter based on the specified arguments.
`<T> ComponentAdapter<T>`
OptInCaching.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
PropertyApplying.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
Storing.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
Synchronizing.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
Create a new component adapter based on the specified arguments.
`<T> ComponentAdapter<T>`
ThreadCaching.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`

## Uses of LifecycleStrategy in org.picocontainer.classname

Constructors in org.picocontainer.classname with parameters of type LifecycleStrategy
Modifier
Constructor
Description
``
`DefaultClassLoadingPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent, ClassLoader cl, ComponentMonitor componentMonitor)`

## Uses of LifecycleStrategy in org.picocontainer.containers

Constructors in org.picocontainer.containers with parameters of type LifecycleStrategy
Modifier
Constructor
Description
``
`TieringPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent)`
Creates a new container with a custom ComponentFactory, LifecycleStrategy for instance registration, and a parent container.
``
`TieringPicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent, ComponentMonitor componentMonitor)`
``
`TieringPicoContainer(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, PicoContainer parent)`
Creates a new container with the AdaptingInjection using a custom ComponentMonitor and lifecycle strategy
``
`TieringPicoContainer(LifecycleStrategy lifecycleStrategy, PicoContainer parent)`
Creates a new container with the AdaptingInjection using a custom lifecycle strategy

## Uses of LifecycleStrategy in org.picocontainer.injectors

Classes in org.picocontainer.injectors that implement LifecycleStrategy
Modifier and Type
Class
Description
`class`
`ProviderAdapter`
Providers are a type of Injector that can participate in Injection via a custom method.
Methods in org.picocontainer.injectors with parameters of type LifecycleStrategy
Modifier and Type
Method
Description
`<T> ComponentAdapter<T>`
AdaptingInjection.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
AnnotatedFieldInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
AnnotatedMethodInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
Create a `SetterInjector`.
`<T> ComponentAdapter<T>`
CompositeInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
ConstructorInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties properties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
MethodInjection.`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
MethodInjection.MethodInjectionByName.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
MethodInjection.MethodInjectionByReflectionMethod.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
MultiInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
NamedFieldInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
NamedMethodInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`<T> ComponentAdapter<T>`
SetterInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
Create a `SetterInjector`.
`<T> ComponentAdapter<T>`
TypedFieldInjection.`createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
`protected ComponentAdapter`
AbstractInjectionFactory.`wrapLifeCycle(Injector injector, LifecycleStrategy lifecycleStrategy)`
Constructors in org.picocontainer.injectors with parameters of type LifecycleStrategy
Modifier
Constructor
Description
``
`ProviderAdapter(LifecycleStrategy lifecycleStrategy, Provider provider)`
``
`ProviderAdapter(LifecycleStrategy lifecycleStrategy, Provider provider, boolean useNames)`

## Uses of LifecycleStrategy in org.picocontainer.lifecycle

Classes in org.picocontainer.lifecycle that implement LifecycleStrategy
Modifier and Type
Class
Description
`class`
`AbstractMonitoringLifecycleStrategy`
Abstract base class for lifecycle strategy implementation supporting a `ComponentMonitor`.
`class`
`CompositeLifecycleStrategy`
Allow for use of alternate LifecycleStrategy strategies to be used at the same time.
`final class`
`JavaEE5LifecycleStrategy`
Java EE 5 has some annotations PreDestroy and PostConstruct that map to start() and dispose() in our world
`class`
`NullLifecycleStrategy`
Lifecycle strategy that does nothing.
`class`
`ReflectionLifecycleStrategy`
Reflection lifecycle strategy.
`class`
`StartableLifecycleStrategy`
Startable lifecycle strategy.
Constructors in org.picocontainer.lifecycle with parameters of type LifecycleStrategy
Modifier
Constructor
Description
``
`CompositeLifecycleStrategy(LifecycleStrategy... alternateStrategies)`