EJB使开发者能够通过特定的组件模型使用JNDI、JTS、JTA、JCA、资源池、线程管理等的集合体。如果没有EJB,我们还是可以使用这些服务,可以直接通过代码直接使用,当然也可以借助已接受过考虑的库和框架。当然后者比较好。EJB仅仅是使用这些服务的手段之一。
其实最终还是说明摆脱EJB我们还是可以什么做J2EE的事情!
EJB的实体bean可以被JDO和hibernate等替代;容器管理事务,可以通过AOP实现的声明性事务替代;web容器一般提供界面缓存,如果就线程管理方面而言,则需要找一个比EJB更好的线程管理方案。如果就RMI/IIOP,EJB是一种出色的实现技术;对于web services,有更好的方案可以替代。
EJB不是J2EE的全部,即便没有EJB,也无须重新发明轮子,不必重新实现J2EE已经提供的服务,只是改变使用它们的方式而已。
总结自《without ejb》