问题描述
最近心血来潮,想好好学下ejb3,于是乎,上网找些入门资料,这时才发现大部分是理论的,很少有简单的入门程序,有的也是04年左右的,而相反spring的确一大堆,并有人感慨,spring完全能替代ejb,为何你还要学ejb?确实,spring 资料一大把,而且用的人似乎比用ejb的多很多...所以本人迷惑了,ejb和spring相比,有什么是spring不可替代的优点?为什么有人说spring完全可以替代ejb?也许这就又上升到标准与非标准之争吧...欢迎大家讨论,帮忙解个惑,不甚感激发贴时发现javaeye的java论坛没有ejb标签,唉....
解决方案
我觉得spring和ejb没有很大的可比性。ejb 1 定义了许多你一定要遵循的接口,显得庞大并且具有很强的侵入性。而ejb 3所谓的轻量级,更多的是在与数据库连接这一层;由于hibernate创始人的加入,ejb 3吸收了许多hibernate中优秀的思想,而业务层提供了annation的方法,spring也提供了。而spring的优势主要在于IoC(将实现延迟)和AOP(对业务整体控制,包括事务处理),使用spring的时候并不要遵循许多的条条框框,而可以通过xml配置,将接口的具体实现延迟,以及实现一些AOP的东西。完全是无侵入型框架!并且spring集成了目前很多优秀的框架,包括ibatis,hibernate,struts等。所以至少从实用的角度说,我感觉spring要比ejb好。关于非标准和标准之争,除了楼主说的spring和ejb之争,现在可能更多的是SSH和JBoss Seam之争了!
解决方案二:
spring把ejb的一部分东西拿出来作的所以你也知道这是什么意思但是spring够用的只是在集群上表现没有ejb好
解决方案三:
Spring-简单、好用、够用EJB3...既然已经在用够用的spring...
解决方案四:
分布式 事务PS:spring是成熟产品,ejb3是新产品,非稳定版.