在我看来,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/