我已经阅读/学习更多关于春天最近,和如何使用弹簧在结合其他公开来源工具,如Tomcat和休眠状态。我评估是否春视可能是一个可能的替代技术的项目,我的工作上,其使用任何及一切的定义轧Java EE代码。事实是,我总是怀疑我们的方案是在工程和方法复杂得多,它需要。令人惊讶的是,这是2009年,然而,我们正在写我们自己的事务处理和线汇集课程。它不像我们是亚马逊,eBay,或谷歌,如果你知道我什么意思。因此,我在调查一个"简单是更好"的选项。

因此,这里是我的问题:我想听到的意见,就如何,你做的决定,一个完全成熟的Java EE应用程序服务器是必要的,或者不。你如何"衡量"的尺寸/装载/需求Java EE程序?并发数量的用户?总的每日交易?如何"重"并的应用程序需要得到你之前扔了你的双手投降,并且说,"好吧,Tomcat只是不切,我们需要Boss/任何/WebSphere"?

有帮助吗?

解决方案

我认为使用完整的Java EE服务器的决定不应该基于用户数或交易数。相反,它应该基于您是否需要该功能。

在我目前的项目中,我们实际上正在从JBoss迁移到vanilla Tomcat,因为我们意识到我们并没有使用任何基本servlet之外的任何Java EE功能。但是,我们正在使用Spring。在Spring的基本对象管理,事务处理和JDBC功能之间,我们没有看到对EJB的迫切需求。我们目前使用Struts 2而不是Spring的MVC,但我听说过很棒的事情。无论如何,Spring很好地集成了许多Java Web框架。

其他提示

Spring不会尝试替换JavaEE规范的某些高级部分,例如JMS和JTA。相反,它建立在那些基础上,使它们与<!>“Spring方式<!>”一致,并且通常使它们更容易使用。

如果您的应用程序需要JMS和JTA之类的强大功能,那么您可以通过Spring轻松使用它们。没问题。

Google开放了大量代码。如果您自己编写低级别的东西,而不是实现已编写的代码,那么您通常会过度思考问题。

回到实际问题,Walmart.com,etrade.com,天气频道和相当多其他人只使用Tomcat。来自IBM的营销和销售人员可能会让您相信不同,但Tomcat没有上限。

除了EJB之外,我不确定Tomcat缺少什么,而且我不是EJB的粉丝。

什么tomcat不提供除了从更多的外来元素的Java EE届会议豆(又名前总).会议豆能让你到隔离处理效率。所以你可以有一个框前结束,另一个为本届会议豆类(商业逻辑),另一个用于数据库。

你会想这样做至少2个原因:

  1. 性能;你找到那个盒子到处理的一切被装载箱子太多了。分离的不同层到不同的箱子会让你来向外扩展。会议豆也可以负载平衡在一个更细致的水平。Tomcat和其他网络服务,同没有聚类。
  2. 灵活性;现在你已经移动的业务逻辑进入其自己的环境你可以制定一个替代前结束其使用同一层,但是说,是一个厚的前端的例子。或者其他情况下使用的会议豆。

虽然我可能应该指出,如果使用网络服务与这一中间层,也有可能是在tomcat!

使用完整的Java EE服务器的唯一原因是,如果您需要分布式XA事务,如果您不需要XA事务,那么您可以使用Spring + JPA + Tomcat + Bean验证+ JSTL + EL + JSP + Java邮件。

Java EE服务器也应该实现JMS,但是在与应用程序服务器的其余部分相同的VM中运行JMS服务器是没有意义的,所以如果你需要JMS,你应该有一个单独的JMS服务器。

我非常不同意这里给出的所有答案。

可以将所有内容添加到Tomcat,包括EJB,CDI,JTA,Bean验证,JAX-RS等。

问题是:你想要这个吗?你想在正确的版本中组装所有这些依赖项并测试它们是否一起工作,当其他人已经这样做了吗?

让我们明确一点:没有人只使用Tomcat!每个人都会添加一个Web框架,一个ioc容器,一个orm,一个事务管理器,Web服务等等。

像TomEE这样的轻量级Java EE服务器已经包含了所有这些,并且使得所有这些事情集成得更好的完整堆栈体验。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top