public class ReusablePicoContainer extends DefaultPicoContainer
It accomplishes its goal in two ways:
(1) Once a container is disposed
of, start() may be called again, allowing for recycling of the container. (This is default
behavior with a picocontainer)
(2) All instance and adapter registrations will be unregistered when stop is called. (For example, HttpServletRequest would be removed), and all component adapter instance values are flushed.
It is still up to the builder of this container to decide where to store its reference. Since it is reusable, it needs to be stored someplace that doesn't easily expire. Probably the most common storage location would be ThreadLocal storage. HttpSession might be another valid storage location.
DefaultPicoContainer.KnowsContainerAdapter<T>, DefaultPicoContainer.LateInstancecomponentFactory, componentMonitor, lifecycleStrategy, orderedComponentAdapters| Constructor and Description |
|---|
ReusablePicoContainer()
Default constructor.
|
ReusablePicoContainer(ComponentFactory componentFactory) |
ReusablePicoContainer(ComponentFactory componentFactory,
LifecycleStrategy lifecycleStrategy,
PicoContainer parent) |
ReusablePicoContainer(ComponentFactory componentFactory,
LifecycleStrategy lifecycleStrategy,
PicoContainer parent,
ComponentMonitor componentMonitor) |
ReusablePicoContainer(ComponentFactory componentFactory,
PicoContainer parent) |
ReusablePicoContainer(ComponentMonitor monitor) |
ReusablePicoContainer(ComponentMonitor monitor,
LifecycleStrategy lifecycleStrategy,
PicoContainer parent) |
ReusablePicoContainer(ComponentMonitor monitor,
PicoContainer parent) |
ReusablePicoContainer(LifecycleStrategy lifecycleStrategy,
PicoContainer parent) |
ReusablePicoContainer(PicoContainer parent) |
| Modifier and Type | Method and Description |
|---|---|
MutablePicoContainer |
addAdapter(ComponentAdapter<?> componentAdapter) |
MutablePicoContainer |
addAdapter(ComponentAdapter<?> componentAdapter,
Properties properties) |
MutablePicoContainer |
addComponent(Object implOrInstance) |
MutablePicoContainer |
addComponent(Object componentKey,
Object componentImplementationOrInstance,
Parameter... parameters) |
MutablePicoContainer |
addFlushableAdapter(ComponentAdapter<?> componentAdapter)
Use this instead of addAdapter in cases where you have custom adapters that the container
cannot figure out whether it should be flushed after each request or not.
|
void |
flushInstances()
Automatically called by
stop(), this method clears all instantiated
instances and readies the picocontainer for reuse. |
MutablePicoContainer |
makeChildContainer() |
<T> ComponentAdapter<T> |
removeComponent(Object componentKey) |
<T> ComponentAdapter<T> |
removeComponentByInstance(T componentInstance) |
void |
stop() |
accept, addAdapterInternal, addChildContainer, addConfig, as, change, changeMonitor, currentMonitor, decorateComponent, dispose, getComponent, getComponent, getComponent, getComponent, getComponent, getComponentAdapter, getComponentAdapter, getComponentAdapter, getComponentAdapters, getComponentAdapters, getComponentAdapters, getComponentKeyToAdapterCache, getComponents, getComponents, getConverters, getLifecycleState, getModifiableComponentAdapterList, getName, getOrderedComponentAdapters, getParent, instantiateComponentAsIsStartable, potentiallyStartAdapter, removeChildContainer, setLifecycleState, setName, start, toStringpublic ReusablePicoContainer()
public ReusablePicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent, ComponentMonitor componentMonitor)
public ReusablePicoContainer(ComponentFactory componentFactory, LifecycleStrategy lifecycleStrategy, PicoContainer parent)
public ReusablePicoContainer(ComponentFactory componentFactory, PicoContainer parent)
public ReusablePicoContainer(ComponentFactory componentFactory)
public ReusablePicoContainer(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, PicoContainer parent)
public ReusablePicoContainer(ComponentMonitor monitor, PicoContainer parent)
public ReusablePicoContainer(ComponentMonitor monitor)
public ReusablePicoContainer(LifecycleStrategy lifecycleStrategy, PicoContainer parent)
public ReusablePicoContainer(PicoContainer parent)
public MutablePicoContainer addComponent(Object componentKey, Object componentImplementationOrInstance, Parameter... parameters) throws PicoCompositionException
addComponent in interface MutablePicoContaineraddComponent in class DefaultPicoContainerPicoCompositionExceptionpublic MutablePicoContainer addComponent(Object implOrInstance) throws PicoCompositionException
addComponent in interface MutablePicoContaineraddComponent in class DefaultPicoContainerPicoCompositionExceptionpublic void stop()
stop in interface Startablestop in class DefaultPicoContainerpublic void flushInstances()
stop(), this method clears all instantiated
instances and readies the picocontainer for reuse.public MutablePicoContainer addAdapter(ComponentAdapter<?> componentAdapter, Properties properties)
addAdapter in class DefaultPicoContainerpublic MutablePicoContainer addFlushableAdapter(ComponentAdapter<?> componentAdapter)
componentAdapter - public MutablePicoContainer addAdapter(ComponentAdapter<?> componentAdapter)
addAdapter in interface MutablePicoContaineraddAdapter in class DefaultPicoContainerpublic <T> ComponentAdapter<T> removeComponent(Object componentKey)
removeComponent in interface MutablePicoContainerremoveComponent in class DefaultPicoContainerpublic <T> ComponentAdapter<T> removeComponentByInstance(T componentInstance)
removeComponentByInstance in interface MutablePicoContainerremoveComponentByInstance in class DefaultPicoContainerpublic MutablePicoContainer makeChildContainer()
makeChildContainer in interface MutablePicoContainermakeChildContainer in class DefaultPicoContainerCopyright © 2003-2014 Codehaus. All Rights Reserved.