繁体   English   中英

Java EE与Servlet的优缺点

[英]Advantages and Disadvantages of Java EE vs. Servlets

使用Java EE(EJB)而不仅仅是简单的Servlet实现的主要原因是什么?

我正在开发一个新项目,主要是一个必须非常快速和可扩展的Web服务。

抱歉有任何困惑,虽然我在Java方面经验丰富,但我对Java Web世界很陌生,可能不会很好地提出这个问题。

EJB的规范1.x和2.x增加了大多数webapps不需要的复杂性。

由于这种复杂性,新框架似乎简化了开发和运行时架构(Hibernate / Spring /其他微容器/其他ORM框架)。

EJB的3.x匹配这种变化(通过JDO和JPA),现在,使用带有这些增强框架的Servlet或带有EJB 3 +的Java EE将为您提供基本相同的结果。

使用Java EE Application Server会为您增加许多管理优势(用于管理池,日志,监视,事务等的GUI)。如果没有它们,您可能会得到相同的结果,但您必须手动完成所有操作(编辑配置)这些文件可能看起来没什么问题,但是如果您打算为您的webapp设置管理员那么使用这些服务器开箱即用的管理工具会更好。

Servlet是HTTP请求侦听器; 他们无法回应任何其他事情。

如果在servlet中嵌入了大量逻辑,那么任何其他客户端都无法使用它。

在POJO中编写您的应用程序。 在没有涉及应用服务器的情况下进行全面测试 然后担心您希望如何打包和部署它。 Servlet的? EJB? 网络服务? 别的什么? 没问题 - 这些只是打包和部署问题。 首先获取您希望在POJO中正常工作的行为。

Spring可以为您提供很多选择。 我推荐它。

Web服务是无状态的吗? 如果是这样,我认为使用完整的Java EE服务器而不是像Tomcat或Jetty这样的轻量级服务器没有任何真正的优势。 您可以使用其中任何一个部署jax-ws实现,并且可以非常轻松地执行您需要的操作。 如果涉及到某种状态,并且您最终希望在多台计算机上共享该状态,那么Java EE就可以派上用场。

话虽如此,我认为Java EE根本不会降低性能。 应用程序服务器通常需要更长时间才能启动,并且需要花费更多精力进行管理,但一旦启动并运行,性能应该类似。

如果您的Web服务可能需要任何程度的“企业”功能,例如按方法安全性或事务使用EJB。

使用EJB 3,这实际上并不是很难,有几个注释而且你已经完成了。

否则servlet背后的简单POJO就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM