您可以互换使用它们.
如果使用EJB3,则必须拥有完整的Java EE,EJB3应用服务器.有些是免费的,有些则不是.
如果使用Spring 3,则需要在CLASSPATH中使用Spring JAR,但不需要完整的Java EE应用服务器.根据您的需要,Tomcat或Jetty就足够了.
EJB3实现有多个供应商; 毕竟,EJB3仅仅是一个规范.Spring只有一家供应商.
就个人而言,我更喜欢春天.从版本1.0开始,我已经使用了六年,取得了巨大的成功.这是一个非常高质量的框架.EJB3从Spring和Hibernate的经验中学到了很多东西.我认为Spring的面向方面编程比添加到EJB3的编程要好.其他模块(例如安全性,LDAP,Web服务等)非常出色.
它们都非常相似.也看到这个问题:EJB 3.1或Spring 3 ..何时选择哪一个?
如果使用EJB,则可以选择以Java EE为目标.这意味着您不必在WAR中包含任何额外的jar,因为目标环境已经支持EJB.将其与目标Java SE进行比较,您不必在jar中包含类似ArrayList和HashMap的类,因为任何Java SE运行时都已经具有这些类.
当然,您也可以在应用程序中包含EJB jar,如果您想要定位像Tomcat或Jetty这样的servlet容器,这很方便.在这种情况下,OpenEJB可能是最佳选择,但任何EJB实现都可以在嵌入模式下运行其容器(这是EJB规范的要求),并且可以在Java SE中使用.
还有一个EJB版本比完整的EJB更轻量级.这称为EJB3-lite,由Glassfish Web Profile和Resin等服务器支持.它们都比裸Tomcat(Resin是23MB)大得多,并且开箱即用.
我个人认为EJB3比Spring好.它不那么复杂,也不那么重量级.EJB3开始了一场革命,只需要简单的注释,并且强烈地遵守约定优于配置.Spring历史上需要大量的XML才能实现最简单的事情.然而,Spring从EJB学习并且现在采用相同的方法.
在一天结束时,两者都是成熟和良好的技术,但你不能错过任何一个(只是避免混合它们,除非你绝对必须).
| 归档时间: |
|
| 查看次数: |
2843 次 |
| 最近记录: |