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

时间:2016-10-25 17:08:35

标签: spring spring-mvc tomcat spring-boot websphere

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

我之前构建了一个war文件(spring-mvc,security,gradle built),但是Spring启动汇编jar文件,它可以在任何有JVM的机器上运行。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

  

我是否需要额外的WAS来提高性能,稳定性,扩展性等?

  • 性能:否 - 当您运行Spring-Application时,Tomcat和WAS之间不应存在重要的性能差异。 (只有Tomcat需要更少的内存)
  • 稳定性:Tomcat和WAS都是非常成熟的产品。
  • 缩放:您可以自己构建一群Tomcats。

WAS优于Tomcat的主要特点是: - WAS支持EJB和CDI(Tomcat需要TomEE),但Spring不会使用它,因为它是一个Dependency Injection容器 - WAS有更多的监控功能,但这没关系,因为Spring Boot有Actuator

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

答案 1 :(得分:0)

简单的答案是否定。您提到的任何原因(性能,稳定性,横向扩展)都不需要任何完整的应用程序服务器。你可以用tomcat做得很好

修改

看起来您只使用应用程序服务器中的JNDI功能。当您将servlet容器与应用程序一起打包时,您真的需要JNDI吗?我不这么认为。那些日子早已过去。

  

当你必须在两者之间移动应用程序时,JNDI真的很棒   环境:开发到集成以测试到生产。如果你   配置每个应用服务器使用相同的JNDI名称,您可以拥有   每个环境中的不同数据库,而不必更改您的   码。您只需选择WAR文件并将其放入新文件中即可   环境。https://stackoverflow.com/a/7760768/6785908

(如果您仍需要使用JNDI来查找数据源,请参阅:https://stackoverflow.com/a/24944671/6785908)。

不,我还没有真正看到将您的应用程序打包为WAR并将其部署到传统应用程序服务器的原因。话虽这么说,如果你有一些现有的基础设施,你被迫部署到现有的WAS(或WebLogic或JBoss任何应用服务器)服务器,那么我休息我的情况:)。