spring boot项目打包成war在tomcat运行的全步骤

下面是详细的步骤。

1.创建Spring Boot项目

首先,需要使用Spring Initializr创建一个Spring Boot项目。这里我们以创建一个简单的Spring Boot RESTful应用为例。

可以使用如下命令创建:

curl https://start.spring.io/starter.zip -o myproject.zip
unzip myproject.zip -d myproject

然后,编辑build.gradle文件,添加如下依赖项:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}

这里的providedRuntime表示Tomcat不会打包进我们的应用程序,而是由外部Tomcat容器来提供。

2.构建打包成war

在项目的根目录下执行命令:

./gradlew build

或者

mvn package

即可构建项目并生成可执行的war文件。可以在build/libs/目录下找到生成的war文件。

3.配置Tomcat

将war文件部署到Tomcat服务器,这里以Tomcat 9为例。

  • 将生成的war文件复制到Tomcat的webapps/目录下。
  • 启动Tomcat服务器,war文件会自动解压并部署。
  • 访问http://localhost:8080/your-project-name/即可看到我们的应用程序页面。

需要注意的是,在使用外部Tomcat容器时,我们需要指定servlet容器为Tomcat,如下所示:

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(YourProjectNameApplication.class);
    }
}

示例1:使用Gradle

为了演示如何使用Gradle构建和打包Spring Boot应用程序,我们将创建如下的RESTful服务。

创建Spring Boot项目:

使用Gradle构建Spring Boot项目:

plugins {
    id 'org.springframework.boot' version '2.5.0'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

创建一个名为MyController的类:

@RestController
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }
}

使用Gradle构建项目:

./gradlew build

运行命令会自动编译我们的应用程序,并打包成war文件。可以在build/libs/目录找到生成的war文件,例如my-app-0.0.1-SNAPSHOT.war

示例2:使用Maven

为了演示如何使用Maven构建和打包Spring Boot应用程序,我们将创建如下的RESTful服务。

创建Spring Boot项目:

使用Maven构建Spring Boot项目:

<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>

    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <name>my-app</name>
    <description>spring boot demo</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <java.version>11</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>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

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

</project>

创建一个名为MyController的类:

@RestController
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }
}

使用Maven构建项目:

mvn package

运行命令会自动编译我们的应用程序,并打包成war文件。可以在target/目录找到生成的war文件,例如my-app-0.0.1-SNAPSHOT.war

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot项目打包成war在tomcat运行的全步骤 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • spring mvc实现文件上传并携带其他参数的示例

    关于“spring mvc实现文件上传并携带其他参数的示例”的攻略,请参考以下步骤: 1. 添加依赖 在 pom.xml 文件中添加以下 spring-web 和 commons-fileupload 的依赖: <dependencies> <!– Spring Web –> <dependency> <grou…

    Java 2023年5月20日
    00
  • 使用spring框架实现数据库事务处理方式

    使用Spring框架可以很方便地实现数据库事务处理方式,下面是完整攻略。 1. Spring事务管理的基本概念 在Spring框架中,事务管理是通过Transaction Manager来实现的。它是一个抽象的接口,具体的实现可以是JDBC、Hibernate或JPA等。Spring框架在进行事务管理时,主要使用以下几个概念: PlatformTransac…

    Java 2023年5月20日
    00
  • java按指定编码写入和读取文件内容的类分享

    下面我来详细讲解如何使用Java按指定编码写入和读取文件内容的类。 什么是编码? 在计算机中,所有的数据都是以二进制形式存储的,但是人类无法直接读懂所有的二进制数据。为了让计算机能够正确地识别和显示不同的文本,我们需要将文本数据按照一定的规则(即编码)转换为二进制数据存储。 常见的编码方式包括ASCII、Unicode、UTF-8等。每一种编码方式都有其特定…

    Java 2023年5月20日
    00
  • uni-app如何实现增量更新功能

    uni-app 是一款基于 Vue.js 的跨平台前端开发框架,支持将同一份代码编译生成多个平台可执行程序(如H5、小程序、App等),可方便地实现大型项目的开发、管理与维护。对于一个中大型项目的开发,增量更新是非常关键的功能,它能够大大缩短用户等待的时间,提高用户体验。本文将详细讲解如何在 uni-app 中实现增量更新功能的攻略。 第一步:使用uni-a…

    Java 2023年5月23日
    00
  • 2022最新Java泛型详解(360度无死角介绍)

    2022最新Java泛型详解(360度无死角介绍) 什么是Java泛型? Java泛型是Java SE 5.0版本中的新特性,提供了一种对类型进行参数化的机制,让代码的重用性和类型安全性都得到了极大的提高。 泛型主要有以下特点: 提高代码的可读性和可维护性 在编译期进行类型检查,提高代码的安全性 可以适用于各种类型,提高代码的重用性 如何使用Java泛型? …

    Java 2023年5月26日
    00
  • 常见的Java反射应用场景有哪些?

    常见的Java反射应用场景主要包括以下几个方面: 动态代理 取得类的方法、属性等信息 调用私有方法,破解封装性 注解解析 以下是两个具体的示例: 动态代理 动态代理是Java反射的一大应用,主要用于在运行时动态地创建一个代理类。这个代理类实现了一组给定接口,它的方法调用会被转发到一个调用处理器上。在代理对象的实现中,我们可以在方法执行前后加入任意的操作,比如…

    Java 2023年5月11日
    00
  • 解析MyBatis源码实现自定义持久层框架

    解析MyBatis源码实现自定义持久层框架是一个比较高级的主题,需要我们对MyBatis的原理和实现方式有一定的了解,下面是一个完整攻略: 1. 理解MyBatis的框架结构 MyBatis的框架结构有三个方面: SqlSessionFactoryBuilder:用于创建SqlSessionFactory对象,可以从XML配置文件和Java代码两种方式创建。…

    Java 2023年6月15日
    00
  • 如何为Spring Cloud Gateway加上全局过滤器

    为Spring Cloud Gateway加上全局过滤器的过程可以分为以下步骤: 创建过滤器Factory类:需要继承AbstractGatewayFilterFactory类,实现其中的apply(Object config)方法,返回一个GlobalFilter实例。 示例一:打印请求路径的全局过滤器 @Component public class Lo…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部