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日

相关文章

  • 使用@Value为静态变量导入并使用导入的静态变量进行初始化方式

    下面是”使用@Value为静态变量导入并使用导入的静态变量进行初始化方式”的完整攻略。 什么是@Value注解? 在Spring中,@Value注解可以用于从外部文件中加载配置值或者在运行时从环境变量中获取配置值,然后赋值给一个属性或类静态变量。 使用@Value导入静态变量 Spring允许我们使用@Value导入静态变量。只需要在使用该注解时加上静态变量…

    Java 2023年5月19日
    00
  • Spring JdbcTemplate实现添加与查询方法详解

    我们来详细讲解一下“Spring JdbcTemplate实现添加与查询方法详解”的完整攻略。 一、什么是JdbcTemplate? JdbcTemplate是Spring框架中用来简化JDBC访问的类,通过JdbcTemplate可以简单而且明了地编写JDBC相关代码。相对于纯JDBC,JdbcTemplate有以下优势: JdbcTemplate回调函数…

    Java 2023年5月20日
    00
  • Java判断字符串是否是整数或者浮点数的方法

    Java判断字符串是否是整数或浮点数有多种方法可以实现。以下是几种常见的方法。 方法一:正则表达式 正则表达式可以匹配复杂的字符模式。下列正则表达式可以匹配整数和浮点数: ^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$ 然后将它和待匹配字符串进行比较: public static boolean isNumeric(Stri…

    Java 2023年5月27日
    00
  • Spring Boot2深入分析解决java.lang.ArrayStoreException异常

    Spring Boot2深入分析解决java.lang.ArrayStoreException异常 问题描述 如果在Spring Boot中使用JPA,而你的数据实体类中有一个数组类型的属性,那么在运行时可能会遇到以下错误: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresen…

    Java 2023年6月2日
    00
  • Java过滤器Filter详解

    关于“Java过滤器Filter详解”的攻略,我将从以下几个方面进行详细讲解: 概念与简介 过滤器的工作原理 过滤器的生命周期 过滤器的配置 过滤器的示例说明 1. 概念与简介 Filter(过滤器)是 Java Web 中的一个组件,它可以截取客户端发送的请求和服务器接收到的响应,对其进行修改或者添置一些参数,并将其传送给下一个过滤器或目标资源(如 Ser…

    Java 2023年6月15日
    00
  • Java 泛型详解(超详细的java泛型方法解析)

    Java泛型详解 什么是泛型? 泛型主要体现在类和方法中,用于实现在编译时期进行类型检查和类型推断的功能,从而避免了在运行时出现类型转换的错误。 泛型类 泛型类是指在类的定义中使用了泛型,即类中的属性、方法等都可以使用泛型。泛型类的语法格式如下: class ClassName<T1, T2, …> { //属性的类型也可以使用泛型 T1 a…

    Java 2023年5月23日
    00
  • 保障MySQL数据安全的一些建议

    保障MySQL数据安全是网站开发者必备的一项知识点。以下是几条建议可以帮助你加强MySQL的安全保障,避免出现各种潜在的风险和安全隐患。 1. 管理权限 为了确保MySQL数据库的安全,我们应该合理分配权限。为用户设置合适的权限,如仅赋予只读权限而不给予修改、删除等高级操作的权限,这样可以避免误操作或者恶意操作导致数据的丢失以及安全隐患等问题。示例1:在Wo…

    Java 2023年6月16日
    00
  • Java实现基于token认证的方法示例

    我来为您讲解“Java实现基于token认证的方法示例”的完整攻略。 什么是token认证 Token认证是现在比较流行的Web应用程序认证方法之一。它能解决基于session认证的一些问题,比如跨站点请求伪造(CSRF)和分布式系统中的会话共享的问题。用户只需要通过用户名和密码一次验证,在服务器成功认证后,服务器会返回一个token给客户端。客户端在后续的…

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