Superclasses to make implementing EJBs simpler and less error-prone, as well as guaranteeing a Spring BeanFactory is available to 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.

The classes in this package are discussed in Chapter 11 of Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002). The present version has changed somewhat, but has the same goals.

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.