Spring Boot 是否需要 WAS(Websphere Application Server)?

the*_*900 0 websphere spring tomcat spring-mvc spring-boot

在我的理论中,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 容器中,出于性能、稳定性、扩展等任何原因?

Ral*_*lph 6

WAS 是一个成熟的 Java Enterprise Application Server,另一方面,您拥有 Spring,它只需要一个 Servlet 容器(Servlet 是完整 JEE 的一部分)。

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

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

我是否需要额外的 WAS 来实现性能、稳定性、扩展等?

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

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

@See应用程序服务器和 servlet 容器之间的区别?更多细节