Spring vs EJB Spring可以代替EJB吗?
Spring从一开始就被开发为EJB的替代品,因此答案当然是您可以使用Spring代替EJB。
如果说使用EJB有“优势”,我想这将取决于您团队的技能。如果您没有Spring专业知识,并且拥有丰富的EJB经验,那么坚持使用EJB 3.0是一个不错的选择。
从理论上讲,为支持EJB标准而编写的应用服务器可以从一台兼容的Java EE应用服务器移植到另一台。但这意味着远离所有将您锁定在一个供应商中的特定于供应商的扩展。
Spring不依赖于它们,因此可以轻松地在应用服务器(例如WebLogic,Tomcat,JBOSS等)之间移植。
但是,您被锁定在Spring中。
Spring鼓励良好的OO设计实践(例如,界面,层,关注点分离),使他们接触的任何问题都受益,即使您决定切换到Guice或其他DI框架。
更新:这个问题在2014年已有5年历史了。需要说明的是,那时编程和应用程序开发的世界已发生了很大变化。
它不再只是在Java或C#,Spring或EJB之间进行选择。使用vert.x可以完全避开Java EE。您无需应用服务器即可编写高度可扩展的多语言应用程序。
更新:现在是2016年3月。Spring Boot提供了一种无需Java EE应用程序服务器即可编写应用程序的更好方法。您可以创建一个可执行的JAR并在JVM上运行它。
我想知道Oracle是否会继续支持Java EE规范。Web服务已取代EJB。EJB解决方案已失效。(只是我的观点。)
解决方法
由于Spring能够像EJB一样使用事务。对我来说,Spring能够代替使用EJB的需求。谁能告诉我使用EJB的其他优点是什么?