作为Spring Boot的新手,我需要了解以下内容,因为我无法直接找到google结果。 他们实际使用什么应用服务器来实际部署那些Spring Boot应用程序? 公司是否真的使用过Tomcat?如果这样,他们是否可以通过集群来实现?
答案 0 :(得分:2)
使用Spring Boot应用程序,您可以生成一个包含嵌入式Tomcat 的应用程序jar。您可以将Web应用程序作为普通的Java应用程序运行。
如果您仍想使用Tomcat服务器部署应用程序。
首先,您需要打包 WAR应用程序而不是JAR 。为此,您需要使用以下内容更改pom.xml:
<profiles>
<profile>
<id>war</id>
<properties>
<packaging.type>war</packaging.type>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>ROOT</finalName>
</build>
</profile>
</profiles>
让我们在 finalName 元素中修改最终的WAR文件名。 (就我而言,输出为ROOT.war)
接下来,通过实现 SpringBootServletInitializer 接口来初始化Tomcat所需的Servlet上下文:
@SpringBootApplication
public class YourApplication extends SpringBootServletInitializer {
}
然后,使用战争配置文件执行Maven命令包:
mvn clean package -Pwar
答案 1 :(得分:1)
Spring boot具有内置的Tomcat服务器,只需从Java运行即可。
Tomcat内置在jar中,因此在任何环境下都是相同的。
这是一个典型的弹簧靴子罐,上面显示了tomcat罐子:
greg@greg-XPS-13-9360:~/work/boot-docker/target$ jar tvf boot-docker-1.0.3.jar | grep tomcat
2293 Mon Jan 30 19:45:14 GMT 2017 BOOT-INF/lib/spring-boot-starter-tomcat-1.5.1.RELEASE.jar
241640 Tue Jan 10 21:03:52 GMT 2017 BOOT-INF/lib/tomcat-embed-websocket-8.5.11.jar
3015953 Tue Jan 10 21:03:50 GMT 2017 BOOT-INF/lib/tomcat-embed-core-8.5.11.jar
239791 Tue Jan 10 21:03:50 GMT 2017 BOOT-INF/lib/tomcat-embed-el-8.5.11.jar
我们将Spring Boot应用程序作为docker镜像(完整的虚拟Unix服务器)在Redhat Openshift云上运行,这很典型。
BTW Tomcat已在商业上使用,非常可靠。