SpringBoot去除内嵌tomcat的实现

以SpringBoot 2.x版本为例,要去除内嵌的Tomcat,可以按照以下步骤进行操作:

1.排除tomcat依赖

在pom.xml文件中,通过在spring-boot-starter-web依赖中排除Tomcat,可以去除内嵌的Tomcat。

示例:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>
  1. 增加Jetty依赖

去除Tomcat依赖后,需要增加Jetty依赖来替代Tomcat。

示例:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
</dependencies>
  1. 修改启动类

在SpringBoot的启动类上增加@EnableAutoConfiguration注解,并且指定SpringBoot使用Jetty作为Web服务器。

示例:

@SpringBootApplication
@EnableAutoConfiguration(exclude = {TomcatAutoConfiguration.class})
public class SampleApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SampleApplication.class);
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(SampleApplication.class)
                .web(WebApplicationType.NONE)
                .run(args);
    }
}
  1. 增加ServletContextInitializerBeans

为了保证SpringBoot能够正常启动,需要增加ServletContextInitializerBeans,用来处理SpringBoot Web应用程序。

示例:

@Bean
public ServletContextInitializer servletContextInitializer() {
    return new ServletContextInitializer() {
        @Override
        public void onStartup(ServletContext servletContext) throws ServletException {
            servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE));
        }
    };
}

完成以上步骤后,就可以去除内嵌的Tomcat,使用Jetty替代Tomcat来启动SpringBoot应用程序了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot去除内嵌tomcat的实现 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Java详解实现ATM机模拟系统

    Java详解实现ATM机模拟系统攻略 系统概述 该ATM机模拟系统是用Java语言实现的,包含了模拟受卡人身份认证、存款、取款等操作。此系统模拟银行的ATM机功能,可以满足普通用户的基本需求。 技术栈 Java:Java SE 8版本及以上 IDE:Eclipse, IntelliJ IDEA等 Maven:用于管理依赖 JUnit:用于单元测试 功能模块 …

    Java 2023年5月24日
    00
  • Redis分布式锁这样用,有坑?

    背景 在微服务项目中,大家都会去使用到分布式锁,一般也是使用Redis去实现,使用RedisTemplate、Redisson、RedisLockRegistry都行,公司的项目中,使用的是Redisson,一般你会怎么用?看看下面的代码,是不是就是你的写法 String lockKey = “forlan_lock_” + serviceId; RLock…

    Java 2023年4月17日
    00
  • 聊一聊jdk1.8中的ArrayList 底层数组是如何扩容的

    ArrayList 是一种常用的动态数组数据结构,底层依托于一个 Object[] 数组,当数组已满或者添加元素个数达到预分配的容量时,需要对数组进行扩容以继续添加元素。在 JDK1.8 中,时常听到关于 ArrayList 扩容的问题,接下来我将详细介绍 ArrayList 的底层数组如何扩容。 ArrayList 底层数组的定义 在 JDK1.8 的 A…

    Java 2023年5月26日
    00
  • J2SE基础之命令行中编写第一个 Hello World

    下面是 J2SE 命令行编写 Hello World 的完整攻略,包括示例说明。 准备工作 在开始之前,我们需要先安装 JDK 并将其配置好环境变量。如果您还没有安装,可以前往 Oracle 官网 下载安装包进行安装。 安装完成后,需要配置环境变量,将 JDK 的 bin 目录添加到系统的 PATH 环境变量里。 创建项目和代码文件 接下来,我们需要在本地创…

    Java 2023年5月23日
    00
  • 深入Java分布式计算的使用分析

    深入Java分布式计算的使用分析 简介 随着大数据和云计算的发展,分布式计算变得越来越重要。Java作为一种广泛使用的编程语言,也具有强大的分布式计算能力。深入学习Java分布式计算,可以帮助解决大规模数据处理和计算问题。 本文将从以下几个方面深入讲解Java分布式计算的使用: 分布式计算概念 Java分布式计算框架概述 使用示例 分布式计算概念 分布式计算…

    Java 2023年5月31日
    00
  • IDEA-Maven项目的jdk版本设置方法

    下面就详细讲解“IDEA-Maven项目的jdk版本设置方法”的完整攻略。 第一步:确认jdk版本 首先要确认本地已经安装了需要使用的jdk版本,打开终端输入以下命令: java -version 如果显示的版本号和你需要使用的版本号一致,则可以跳过第二步。如果版本号不一致,需要安装或者设置jdk环境变量。这里不再详述。 第二步:设置项目jdk版本 2.1 …

    Java 2023年5月20日
    00
  • JSP实现网页访问统计

    JSP(Java Server Pages)是一种动态网页技术,常用于开发企业级Web应用程序。通过使用JSP和Servlet,我们可以轻松地创建具有动态内容的网页,这其中包括网站访问次数统计。 下面是实现JSP实现网页访问统计的完整攻略: 步骤1:创建数据库 为了存储网站访问信息,我们需要先创建一个数据库,并在其中创建一个表格来存储访问信息。 可以使用My…

    Java 2023年6月15日
    00
  • java调用回调机制详解

    Java调用回调机制详解 回调机制是一种常见的编程技术,在Java编程中也得到了广泛应用。由于Java是面向对象的编程语言,因此回调机制在Java中也是以对象的方式实现的。 什么是回调机制? 简单来说,回调机制就是在完成某个操作后,由被调用者主动调用调用者的方法,执行一定的操作。在Java中,回调机制通常采用接口回调的形式实现。 在接口回调中,被调用者会提供…

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