Deploying Spring Boot App to JBoss Wildfly
我们知道,当我们创建任何Spring Boot应用程序时,它都带有嵌入式Tomcat服务器,并且我们不需要额外设置服务器。发生这种情况的原因是,在Spring Boot父项目中,它具有对Tomcat的依赖关系,并且当我们启动Spring Boot应用程序时,它将使用Tomcat服务器本身来引导应用程序。
您可能还会喜欢:欢迎使用Spring Boot(具有嵌入式Tomcat功能) BLOCKQUOTE>但是有时,我们的要求可能包括创建一个war文件,然后将其部署到任何Web应用程序服务器,例如JBoss。在本文中,我们将看到如何打包Spring Boot应用程序并将其部署到任何外部服务器。在这里,我们将使用JBoss执行以下任务:
创建一个Spring Boot应用程序
从应用程序中删除嵌入式Tomcat服务器
生成可以部署到JBoss服务器的war文件
创建一个Spring Boot应用程序
您可以通过从 start.spring.io。生成一个项目来创建Spring Boot应用程序。
下载后,您可以将Maven项目作为现有Maven项目导入到IDE(建议使用Spring Tool Suite)。
然后,实施Maven构建以获取所需的依赖关系。
将嵌入式Tomcat服务器与Spring Boot应用程序分开
首先,打开pom.xml并添加Tomcat依赖项。接下来,您可以将范围更改为提供的范围。当我们按照提供的范围进行操作时,这意味着此依赖项仅在编译时可用,而在运行时不可用。这是因为我们在编译时需要这种依赖性来编译与Web组件相关的文件。
添加Tomcat依赖项并将其范围更改为所提供的内容将为我们提供以下内容:
1
2
3
4
5
6
7
8
9 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<!-- Make sure that you changed the packaging to war -->
<packaging>war</packaging>然后,在Spring Boot主类中扩展
SpringBootServletInitializer 类,并覆盖configure方法。我们需要执行此操作以在任何其他Servlet容器(如JBoss)中初始化应用程序。您可以在下面看到扩展
SpringBootServletInitializer 并覆盖configure方法的代码。
1
2
3
4
5
6
7
8
9
10
11
12
13 @SpringBootApplication
@EnableSwagger2
public class SpringBootDemoApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
return builder.sources(SpringBootDemoApplication.class);
}
public static void main(String[] args){
SpringApplication.run(SpringBootDemoApplication.class, args);
}
}使用此配置,应用程序已准备好部署到任何外部应用程序服务器。
完成此操作后,您可以将Spring Boot应用程序打包为war并将其部署到JBoss服务器。为此,您需要运行
mvn clean package ,这将生成war文件。目前为止就这样了。我们希望您喜欢这个简短的演示。确保在评论部分中留下想法和问题。
进一步阅读
欢迎使用Spring Boot(具有嵌入式Tomcat功能)
介绍Spring Boot
[DZone Refcard] JBoss入门