java - Spring 与 EJB。 Spring可以替代EJB吗?

标签 java spring ejb-3.0

自从 Spring能够像 EJB 一样使用事务.对我来说,Spring 能够取代使用 EJB 的需求。谁能告诉我使用 EJB 的额外优势是什么?

最佳答案

Spring 从一开始就是作为 EJB 的替代品而开发的,所以答案当然是您可以使用 Spring 来代替 EJB。

如果使用 EJB 有“优势”,我会说这取决于您团队的技能。如果您没有 Spring 专业知识,并且有大量 EJB 经验,那么坚持使用 EJB 3.0 可能是一个不错的举措。

为支持 EJB 标准而编写的应用服务器理论上可以从一个兼容的 Java EE 应用服务器移植到另一个。但这意味着远离将您锁定在一个供应商的任何和所有供应商特定的扩展。

应用服务器(例如,WebLogic、Tomcat、JBOSS 等)之间的 Spring 端口很容易实现,因为它不依赖于它们。

但是,您被锁定在 Spring 中。

Spring 鼓励良好的 OO 设计实践(例如,接口(interface)、层、关注点分离),即使您决定切换到 Guice 或其他 DI 框架,这些实践也会使他们触及的任何问题都受益。

更新:这个问题和答案是 2014 年的五年。需要说的是,编程和应用程序开发的世界在那段时间发生了很大的变化。

它不再只是 Java 或 C#、Spring 或 EJB 之间的选择。与 vert.x完全避开 Java EE 是可能的。你可以编写高度可扩展的, 没有应用服务器的多语言应用程序。

更新:现在是 2016 年 3 月。 Spring Boot 提供了一种更好的方式来编写没有 Java EE 应用服务器的应用程序。您可以创建一个可执行的 JAR 并在 JVM 上运行它。

我想知道 Oracle 是否会继续支持 Java EE 规范。 Web 服务已经取代了 EJB。 EJB 解决方案已死。 (只是我的看法。)

关于java - Spring 与 EJB。 Spring可以替代EJB吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1779169/

相关文章:

spring - @ControllerAdvice 与@Autowired 依赖关系未被注入(inject)

java - 如何通过远程接口(interface)代理访问有状态 session bean?

mysql - 如何从表中删除行而不从引用表中删除行?

java - 有关管理 UDP 调用的架构建议

java - Hibernate Session 更新未反射(reflect)在数据库中

java - 在另一个 JFrame 表单中获取一个 JFrame 表单的原始 boolean 类型的值?

java - 如果处理器不支持虚拟化技术,则替代 Android 模拟器

java - 由于希伯来语用户名,无法使用 bridj 加载外部 dll

java - HibernateCursorItemReader 结果集已经关闭

Spring Security 3.1 注销后重定向