spring - spring boot需要WAS(Websphere Application Server)吗?

标签 spring spring-mvc tomcat spring-boot websphere

在我看来,spring boot 能够独立运行 java web 应用程序。它说它有一个自己的嵌入式 servlet 容器并且可以使用 JNDI 本身。

我之前构建了一个 war 文件(构建了 spring-mvc、security、gradle),但是 Spring boot 组装了 jar 文件并且它可以在任何具有 JVM 的机器上运行。

所以我的问题是,如果我制作了一个基于 spring boot 的 web 应用程序(包含 JSP 文件和 JNDI 用于查找数据源),虽然它有自己的嵌入式 servlet 容器和打包的 jar 文件用于独立运行,但我是否仍然需要打包出于性能、稳定性、横向扩展等原因,将其作为 WAR 文件部署到 WAS(Websphere 应用程序服务器)或 servlet 容器中?

最佳答案

WAS 是一个成熟的 Java 企业应用服务器,另一方面,您拥有的 Spring 只需要一个 Servlet 容器(Servlet 是完整 JEE 的一部分)。

Servlet 容器例如:Tomcat、Jetty,还有 WAS。

Spring Boot能够将完整的应用和Tomcat的代码一起打包在一个JAR中,这样这个jar中就包含了Servlet Container和你的Application。

Do I need a additional WAS for performance, stability, scaling-out etc?

  • 性能:否 - 当您运行 Spring 应用程序时,Tomcat 和 WAS 之间应该没有重要的性能差异。 (只是 Tomcat 自身需要的内存更少)
  • 稳定性:Tomcat和WAS都是非常成熟的产品。
  • 扩展:您可以自己构建一个 Tomcat 集群。

WAS over Tomcat 的主要特点是: - WAS 支持 EJB 和 CDI(Tomcat 为此需要 TomEE),但 Spring 不会使用它,因为它是它的一个依赖注入(inject)容器 - WAS 有更多的监控功能,但这并不重要,因为 Spring Boot 有 Actuator

@见Difference between an application server and a servlet container?了解更多详情

关于spring - spring boot需要WAS(Websphere Application Server)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40245797/

相关文章:

spring 组件扫描类

java - Spring Batch 中 H2 数据库的元表

java - 获取Spring MVC相对路径

java - Liferay已安装但本地主机:8080 return "No data received"

java - 无法在 Spring Web 应用程序中打开属性文件

java - 对象数组作为 Rest 服务中的参数

java - 使用 Spring 进行字符串到字符串的映射?

java - 不同 Tomcat 服务器上托管的 REST 服务之间的通信

java - Maven 依赖项在 WEB-INF/lib 中不可见

spring - 为什么在 Spring Boot 项目中找不到 SecurityEvaluationContextExtension 类?