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 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 enviroment 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.


SmartSessionBean Interface to be implemented by Session Beans that want to expose important state to cooperating classes. 


AbstractEnterpriseBean Base class for Spring-based EJB 2.x beans. 
AbstractJmsMessageDrivenBean Convenient base class for JMS-based EJB 2.x MDBs. 
AbstractMessageDrivenBean Convenient base class for EJB 2.x MDBs. 
AbstractSessionBean Base class for Spring-based EJB 2.x session beans. 
AbstractStatefulSessionBean Convenient base class for EJB 2.x stateful session beans (SFSBs). 
AbstractStatelessSessionBean Convenient base class for EJB 2.x stateless session beans (SLSBs), minimizing the work involved in implementing an SLSB and preventing common errors.