Klasse SingletonBeanProvider

java.lang.Object
net.sf.jguiraffe.di.impl.providers.LifeCycleBeanProvider
net.sf.jguiraffe.di.impl.providers.SingletonBeanProvider
Alle implementierten Schnittstellen:
BeanInitializer, BeanProvider

public class SingletonBeanProvider extends LifeCycleBeanProvider

A specialized life-cycle supporting BeanProvider implementation for creating singleton beans.

When the getBean() method of an instance of this class is called for the first time, all dependencies are resolved, and a new bean instance is created (using the specified creation bean provider). Following calls to getBean() always return this same bean instance. In fact, this provider then behaves like a constant bean provider: it does not declare any dependencies any more and does not need any synchronization support (i.e. the getLockID() method will always return null). This means that providers of this type can be efficiently used in a multi-threaded environment once they are initialized.

Instances of this class can also be initialized with an Invokable to be called when the bean is no more needed. This Invokable is triggered by the shutdown() method. This mechanism makes it possible to perform cleanup when a bean store is closed.

Version:
$Id: SingletonBeanProvider.java 208 2012-02-11 20:57:33Z oheger $
Autor:
Oliver Heger
  • Konstruktordetails

    • SingletonBeanProvider

      public SingletonBeanProvider(BeanProvider createProvider, Invokable initInv, Invokable shutdownInv)
      Creates a new instance of SingletonBeanProvider and initializes it with the bean provider for creating a bean instance and Invokable objects for initializing and releasing the bean managed by this provider.
      Parameter:
      createProvider - the bean provider used for creating a new bean instance (must not be null)
      initInv - the (optional) invocation object for performing initialization
      shutdownInv - the (optional) Invokable object to be called on shutdown
      Löst aus:
      IllegalArgumentException - if the bean provider is undefined
    • SingletonBeanProvider

      public SingletonBeanProvider(BeanProvider createProvider, Invokable initinv)
      Creates a new instance of SingletonBeanProvider and initializes it with the bean provider for creating a bean instance and the invocation object for performing initialization.
      Parameter:
      createProvider - the bean provider used for creating a new bean instance (must not be null)
      initinv - the (optional) invocation object for performing initialization
      Löst aus:
      IllegalArgumentException - if the bean provider is undefined
    • SingletonBeanProvider

      public SingletonBeanProvider(BeanProvider createProvider)
      Creates a new instance of SingletonBeanProvider and initializes it with the bean provider for creating a bean instance.
      Parameter:
      createProvider - the bean provider used for creating a new bean instance (must not be null)
      Löst aus:
      IllegalArgumentException - if the bean provider is undefined
  • Methodendetails

    • getShutdownHandler

      public Invokable getShutdownHandler()
      Returns the Invokable object that is called when this provider is shut down. This can be null if no shutdown handler was set.
      Gibt zurück:
      the Invokable to be called on shutdown
    • getBean

      public Object getBean(DependencyProvider dependencyProvider)
      Returns the bean managed by this bean provider. This implementation will create a bean on first access and then always return this instance.
      Parameter:
      dependencyProvider - the dependency provider
      Gibt zurück:
      the bean managed by this provider
      Löst aus:
      InjectionException - if an error occurs
    • getDependencies

      public Set<Dependency> getDependencies()
      Returns the dependencies of this bean provider. If already a bean has been created, this implementation returns null because there is no need any more for resolving dependencies.
      Angegeben von:
      getDependencies in Schnittstelle BeanProvider
      Setzt außer Kraft:
      getDependencies in Klasse LifeCycleBeanProvider
      Gibt zurück:
      the dependencies of this bean provider
      Siehe auch:
    • getLockID

      public Long getLockID()
      Returns the ID of the locking transaction. As long as no bean has been created yet, this implementation behaves like the method of the base class. After that it will always return null, because from now on there is no need for synchronization any more.
      Angegeben von:
      getLockID in Schnittstelle BeanProvider
      Setzt außer Kraft:
      getLockID in Klasse LifeCycleBeanProvider
      Gibt zurück:
      the ID of the locking transaction
    • shutdown

      public void shutdown(DependencyProvider depProvider)
      Tells this provider that it is no more needed. This implementation invokes the shutdown handler if a bean was already created.
      Angegeben von:
      shutdown in Schnittstelle BeanProvider
      Setzt außer Kraft:
      shutdown in Klasse LifeCycleBeanProvider
      Parameter:
      depProvider - the DependencyProvider