# Package org.springframework.ejb.support

Base classes to make implementing EJB 2.x beans simpler and less error-prone, as well as guaranteeing a Spring BeanFactory is available to such EJBs.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  SmartSessionBean | Deprecated as of Spring 3.2, in favor of implementing EJBs in EJB 3 style

- Class Summary
  Class | Description
  --- | ---
  AbstractEnterpriseBean | Deprecated as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  AbstractJmsMessageDrivenBean | Deprecated as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  AbstractMessageDrivenBean | Deprecated as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  AbstractSessionBean | Deprecated as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  AbstractStatefulSessionBean | Deprecated as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  AbstractStatelessSessionBean | Deprecated as of Spring 3.2, in favor of implementing EJBs in EJB 3 style

## Package org.springframework.ejb.support Description

Base classes to make implementing EJB 2.x beans simpler and less error-prone, as well as guaranteeing a Spring BeanFactory is available to such EJBs. This promotes good EJB practice, with EJB services used for transaction management, thread management, and (possibly) remoting, while business logic is implemented in easily testable POJOs.

In this model, the EJB is a facade, with as many POJO helpers behind the BeanFactory as required.

Note that the default behavior is to look for an EJB environment variable with name `ejb/BeanFactoryPath` that specifies the location on the classpath of an XML bean factory definition file (such as `/com/mycom/mypackage/mybeans.xml`). If this JNDI key is missing, your EJB subclass won't successfully initialize in the container.

Check out the `org.springframework.ejb.interceptor` package for equivalent support for the EJB 3 component model, providing annotation-based autowiring using an EJB 3 interceptor.