Spring Boot2如何构建可部署的war包

作者:gdjlc 时间:2023-11-29 06:40:59 

默认情况下Spring Boot使用了内嵌的Tomcat服务器,项目最终被打成jar包运行,每个jar包可以被看作一个独立的Web服务器。

传统的Web开发,一般会将Web应用打成一个war包,然后将其部署到Web服务器中运行。

Spring Boot也支持传统的部署模式。

开发环境:IntelliJ IDEA 2019.2.2

Spring Boot版本:2.1.8

1、新建一个名称为demo的Spring Boot项目。

2、修改pom.xml文件

下面粗体部分为所加代码,注释掉原来的build节点,该项目最终会打包成一个war-demo的war包。


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.1.8.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
 </parent>
 <groupId>com.example</groupId>
 <artifactId>demo</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>demo</name>
 <description>Demo project for Spring Boot</description>
 <packaging>war</packaging>
 <build>
   <finalName>war-demo</finalName>
 </build>

<properties>
   <java.version>1.8</java.version>
 </properties>

<dependencies>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
   </dependency>

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-tomcat</artifactId>
     <scope>provided</scope>
   </dependency>

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
   </dependency>

</dependencies>

<!-- <build>
   <plugins>
     <plugin>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-maven-plugin</artifactId>
     </plugin>
   </plugins>
 </build>-->

</project>

3、修改启动类方法 DemoApplication.java

继承SpringBootServletInitializer,重写父类configure方法。增加测试用的控制器。


package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication extends SpringBootServletInitializer {

protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
   return application.sources(DemoApplication.class);
 }

public static void main(String[] args) {
   SpringApplication.run(DemoApplication.class, args);
 }

@RequestMapping("/")
 public String test(){
   return "test";
 }
}

4、先后点击IDEA的Maven窗口的clean和package

Spring Boot2如何构建可部署的war包

到项目的target目录下,可看到生成了一个war-demo.war,把它拷贝到Tomcat的webapps目录下,启动Tomcat,

访问http://localhost:8080/war-demo/,可看到页面输出:test

附,项目结构:

Spring Boot2如何构建可部署的war包

来源:https://www.cnblogs.com/gdjlc/p/11581901.html

标签:spring,boot,2,构建,部署,war,包
0
投稿

猜你喜欢

  • 使用FeignClient设置动态Url

    2022-07-04 05:55:39
  • SpringBoot中的Thymeleaf用法

    2023-10-30 17:30:39
  • Android+SQLite数据库实现的生词记事本功能实例

    2023-06-18 10:41:35
  • java实现基于Tcp的socket聊天程序

    2022-03-11 15:28:07
  • C#中WPF ListView绑定数据的实例详解

    2023-03-11 12:08:41
  • Android中的LeakCanary的原理详解

    2021-06-18 09:16:40
  • JavaWeb实现用户登录与注册功能

    2022-08-30 17:23:48
  • Android EditText限制输入整数和小数的位数的方法示例

    2022-12-23 05:15:30
  • 浅谈C#中的委托、事件与异步

    2022-04-25 23:05:34
  • Spring MVC4.1服务器端推送实现过程解析

    2021-07-24 14:53:16
  • Android中AlertDilog显示简单和复杂列表的方法

    2022-11-22 16:32:35
  • Springboot+WebSocket实现一对一聊天和公告的示例代码

    2022-06-16 11:32:33
  • C#判断语句的表达式树实现

    2022-11-10 21:55:02
  • Unity3D实现虚拟按钮控制人物移动效果

    2022-06-13 04:26:26
  • Java Spring 事件监听详情解析

    2021-06-05 00:02:08
  • 使用Mybatis-Plus时的SqlSessionFactory问题及处理

    2022-01-30 07:40:04
  • 在IDEA使用中directory和package的操作

    2022-07-05 22:05:53
  • Java基础教程之包(package)

    2021-11-01 01:53:19
  • maven scope provided和runtime的例子说明

    2023-04-28 02:15:00
  • C# 邮件发送和接收实现代码

    2021-11-23 03:32:36
  • asp之家 软件编程 m.aspxhome.com