Interface Bean<T>

Type Parameters:
T - the class of the bean instance
All Superinterfaces:
BeanAttributes<T>, Contextual<T>
All Known Subinterfaces:
Decorator<T>, Interceptor<T>

public interface Bean<T> extends Contextual<T>, BeanAttributes<T>

Represents an enabled bean. This interface defines everything the container needs to manage instances of the bean.

Author:
Gavin King, David Allen
  • Method Details

    • destroy

      void destroy(T instance, CreationalContext<T> creationalContext)
      Destroy an instance of this bean.

      Implementations of Bean that are not backed by a Producer should include the following code at the end of destroy() to satisfy the Contextual.destroy(Object, CreationalContext) requirements and support auto-closeable beans:

      
       if (isAutoClose() && instance instanceof AutoCloseable ac) {
           try {
               ac.close();
           } catch (Exception e) {
               // log an error or handle the exception in some other way
               // bean destruction is not allowed to throw an exception
           }
       }
      
       creationalContext.release();
       
      Specified by:
      destroy in interface Contextual<T>
      Parameters:
      instance - the contextual instance to destroy
      creationalContext - the context in which this instance was created
    • getBeanClass

      Class<?> getBeanClass()
      The bean class of the managed bean or session bean or of the bean that declares the producer method or field.
      Returns:
      the bean class
    • getInjectionPoints

      Set<InjectionPoint> getInjectionPoints()
      Obtains the InjectionPoint objects representing injection points of the bean, that will be validated by the container at initialization time.
      Returns:
      the set of injection points of the bean