AbstractStatefulSessionBean (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

org.springframework.ejb.support

## Class AbstractStatefulSessionBean

- java.lang.Object
- - org.springframework.ejb.support.AbstractEnterpriseBean
  - - org.springframework.ejb.support.AbstractSessionBean
    - - org.springframework.ejb.support.AbstractStatefulSessionBean

- All Implemented Interfaces:
    Serializable, EnterpriseBean, SessionBean, SmartSessionBean

  Deprecated.
  as of Spring 3.2, in favor of implementing EJBs in EJB 3 style

      @Deprecated
      public abstract class AbstractStatefulSessionBean
      extends AbstractSessionBean

  Convenient base class for EJB 2.x stateful session beans (SFSBs). SFSBs should extend this class, leaving them to implement the `ejbActivate()` and `ejbPassivate()` lifecycle methods to comply with the requirements of the EJB specification.

  Note: Subclasses should invoke the `loadBeanFactory()` method in their custom `ejbCreate()` and `ejbActivate()` methods, and should invoke the `unloadBeanFactory()` method in their `ejbPassivate` method.

  Note: The default BeanFactoryLocator used by this class's superclass (ContextJndiBeanFactoryLocator) is not serializable. Therefore, when using the default BeanFactoryLocator, or another variant which is not serializable, subclasses must call `setBeanFactoryLocator(null)` in `ejbPassivate()`, with a corresponding call to `setBeanFactoryLocator(xxx)` in `ejbActivate()` unless relying on the default locator.

  Author:
    Rod Johnson, Colin Sampaleanu
  See Also:
    `ContextJndiBeanFactoryLocator`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.springframework.ejb.support.AbstractEnterpriseBean

      `BEAN_FACTORY_PATH_ENVIRONMENT_KEY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractStatefulSessionBean()` Deprecated.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `loadBeanFactory()` Deprecated. Load a Spring BeanFactory namespace.
    `protected void` | `unloadBeanFactory()` Deprecated. Unload the Spring BeanFactory instance.

    - ### Methods inherited from class org.springframework.ejb.support.AbstractSessionBean

      `getSessionContext, setSessionContext`

    - ### Methods inherited from class org.springframework.ejb.support.AbstractEnterpriseBean

      `ejbRemove, getBeanFactory, onEjbRemove, setBeanFactoryLocator, setBeanFactoryLocatorKey`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface javax.ejb.SessionBean

      `ejbActivate, ejbPassivate, ejbRemove`

- - ### Constructor Detail

    - #### AbstractStatefulSessionBean

          public AbstractStatefulSessionBean()

      Deprecated.

  - ### Method Detail

    - #### loadBeanFactory

          protected void loadBeanFactory()
                                  throws BeansException

      Deprecated.
      Load a Spring BeanFactory namespace. Exposed for subclasses to load a BeanFactory in their `ejbCreate()` methods. Those callers would normally want to catch BeansException and rethrow it as `CreateException`. Unless the BeanFactory is known to be serializable, this method must also be called from `ejbActivate()`, to reload a context removed via a call to `unloadBeanFactory()` from the `ejbPassivate()` implementation.
      Throws:
        `BeansException`
      See Also:
        `AbstractStatelessSessionBean.ejbCreate()`

    - #### unloadBeanFactory

          protected void unloadBeanFactory()
                                    throws FatalBeanException

      Deprecated.
      Unload the Spring BeanFactory instance. The default `ejbRemove()` method invokes this method, but subclasses which override `ejbRemove()` must invoke this method themselves.

      Unless the BeanFactory is known to be serializable, this method must also be called from `ejbPassivate()`, with a corresponding call to `loadBeanFactory()` from `ejbActivate()`.

      Throws:
        `FatalBeanException`