带有嵌入式tomcat的Spring Boot应用

Atu*_*tul 4 java tomcat spring-mvc amazon-ec2 spring-boot

我正在做一个项目,我们正在使用Spring-Boot,STS。我只要在main上单击鼠标右键就可以启动该项目,并以spring boot应用程序的形式运行,它就可以运行。现在,我被要求在其他类似Amazon EC2实例的机器上使用Embedded tomcat运行它。在正常的Spring项目中,我通常要做的是创建一个war文件,将其放置在tomcat-> webapps文件夹中,然后从bin中启动它。在嵌入式tomcat的情况下,我如何在没有tomcat的情况下运行我的应用程序。我的战争(包括嵌入式tomcat依赖项)将在哪里运行?请提出一些解决方案,这是第一次使用Spring Boot和嵌入式tomcat。感谢您的建议。

bar*_*ini 5

建议为 spring boot 应用程序构建 jar 文件。这个 jar 中包含嵌入式 tomcat。但是当然您也可以将其构建为战争文件。要让它们都运行,您可以简单地运行java -jar your-jar-file.jarjava -jar your-war-file.war


小智 5

只需在pom或gradle构建中拉入Spring boot Tomcat启动器即可。这会将所有tomcat依赖项带到您的应用程序jar中。嵌入式tomcat意味着在JVM内的运行时中,Spring引导会使用jar中的依赖项启动服务器。因此,消除了将战争推送到tomcat文件夹并重新启动的所有问题。使用Spring Boot插件构建jar。mvn spring-boot:run或gradle bootRun,然后以任何可执行jar的形式运行此jar。

java -jar your-app.jar
Run Code Online (Sandbox Code Playgroud)

这将调用Spring Boot Main类。在内部启动服务器并创建应用程序上下文。这适用于您本地或EC2的所有平台。