java - 我应该为我的业务层使用 EJB3 还是 Spring?

标签 java performance spring ejb-3.0 scalability

我的团队正在开发一种带有 Web 前端的面向服务的新产品。在讨论我们将使用哪些技术时,我们决定运行 JBoss 应用程序服务器、Flex 前端(可能使用 Adob​​e AIR 进行桌面部署)以及连接客户端和服务器的 Web 服务。

在为我们的业务逻辑使用哪种服务器技术时,我们陷入了僵局。最大的争论是在 EJB3 和 Spring 之间,我们最关心的是可扩展性和性能,以及代码库的可维护性。

这是我的问题:

  1. 支持或反对 EJB3 与 Spring 的论据是什么?
    • 我会遇到哪些陷阱?
    • 我在哪里可以找到好的基准信息?

最佳答案

基于性能的 EJB3 和 Spring 之间不会有太大的区别。我们选择 Spring 的原因如下(问题中未提及):

  • Spring 插入架构朝着更容易支持单元测试的方向发展。例如,注入(inject)一个模拟 DAO 对象对您的业务层进行单元测试,或者利用 Spring 的 MockHttpRequest 对象对一个 servlet 进行单元测试。我们为单元测试维护一个单独的 Spring 配置,允许我们将测试隔离到特定的层。
  • 最重要的驱动程序是兼容性。如果您需要支持多个 App Server(或最终希望选择从 JBoss 迁移到 Glassfish 等),您基本上将随身携带容器(Spring),而不是依赖于不同实现之间的兼容性EJB3 规范。
  • Spring 允许选择持久性、对象远程处理等技术。例如,我们还使用 Flex 前端,并使用 Hessian 协议(protocol)在 Flex 和 Spring 之间进行通信。

关于java - 我应该为我的业务层使用 EJB3 还是 Spring?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68527/

相关文章:

java - 如何在 Java SE 应用程序的 Netbeans native 打包中添加其他文件/文件夹

javascript - 试图调查页面加载性能错误 : What is "Scripting" and "Idle"?

performance - CSV 生成速度极其缓慢

java - 如何在 Netbeans 中配置 spring 配置文件?

java - 如何在超时时终止服务器套接字线程?

java - 无法使用 Postgres 存储函数获取 ID - int 类型的值错误

java - 在java中读取xml文件和解析器

c# - 快速视频显示 WPF

java - Autowiring 由 EasyMock 工厂方法生成的 bean?

java - 使用 JDBC 动态向表中插入数据