spring boot中web容器配置

2023-11-13

web容器配置

spring boot 默认的web容器是 tomcat,如果需要换成其他的 web 容器,可以如下配置。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 默认使用的是 tomcat,这里做个排除,使用下面配置的jetty -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
 <!--支持 servlet 的容器有三个 tomcat,jetty,Undertow
     Undertow 是 Red Hat 公司的开源产品, 它完全采用 Java 语言开发,是一款灵活的高性能 Web 服务器,支持阻塞 IO 和非阻塞 IO。
     由于 Undertow 采用 Java 语言开发,可以直接嵌入到 Java 项目中使用。同时, Undertow 完全支持 Servlet 和 Web Socket,
     在高并发情况下表现非常出色。

    Jetty does not yet support Servlet 6.0. To use Jetty with Spring Boot 3.0, 
    you will have to downgrade the Servlet API to 5.0.
    <dependency>
	    <groupId>jakarta.servlet</groupId>
	    <artifactId>jakarta.servlet-api</artifactId>
	    <version>5.0.0</version>
	</dependency>
 -->
<dependency>     
   <groupId>org.springframework.boot</groupId>
   <!--<artifactId>spring-boot-starter-tomcat</artifactId>
   <artifactId>spring-boot-starter-undertow</artifactId>-->
   <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<!---->

如果使用的 reactive 的话,tomcat,jetty,Undertow 之外还可以选择 netty。

正常来说,spring boot 会根据是否有spring-boot-starter-web来确定当前是项目是一个web项目(servlet还是reactive),还是一个javase项目,同时还可以在配置文件中指定是否启动web容器,或者容器的类型。
在这里插入图片描述
spring boot 端口配置

server:
  # 指定端口号
  port: 8888
  # 关闭 http 请求
  port: -1
  # 随机端口
  port: 0

如果是随机端口,可以通过自定义监听器来获取端口,然后使用。

import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.context.ApplicationListener;

public class PortApplicationListener implements ApplicationListener<WebServerInitializedEvent> {
    @Override
    public void onApplicationEvent(WebServerInitializedEvent event) {
        System.out.println("event.getWebServer().getPort() = " + event.getWebServer().getPort());
    }
}

配置 spring boot 的相应压缩,一般用不到,实际使用中通过 nginx 来做返回内容的压缩即可。

server:
  port: 8888
  compression:
    enabled: true
    # 大于 2kb 的内容进行压缩
    min-response-size: 2
    # 压缩的文件类型
    mime-types: application/fastsoap
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring boot中web容器配置 的相关文章

随机推荐

  • npm install 卡在了 reify:rxjs: timing reifyNode,出现 gyp ERR find Python、gyp ERR find VS

    前言 最近跑一个vue的项目 第一步肯定是npm install 结果就出现我标题上写的那些情况 经过一番搜索 网上一堆方法尝试了 有说叫你用管理员权限运行 npm install global production windows bui
  • [NISACTF 2022]babyupload

    NISACTF 2022 babyupload 本题考点 python代码审计 os path join 处理路径拼接的问题 做题过程 经典的文件上传页面 F12查看源码
  • SQL-DAY 8(SQL窗口函数的应用案例:电商平台订单信息案例分析)

    文章目录 一 窗口函数说明 1 窗口函数的语句结构 2 窗口函数的分类 二 案例分析 电商平台订单信息 1 数据准备 2 窗口函数之累计计算函数 3 窗口函数之排序函数 3 窗口函数之偏移分析函数 一 窗口函数说明 1 窗口函数的语句结构
  • QT自定义控件设置文本过长时显示点点点……

    有时候有的控件没有文本超大于控件宽度的时候 显示点点点 的属性 即elidetext 这个时候最简单的方法就是自己把文本设置一下 下面上代码 定义elidtText接口 比如自定义QLineEdit控件 追加接口 void CustomLi
  • windows平板找回完整的电源模式,包括高性能模式

    windows平板找回完整的电源模式 包括高性能模式 找回完整的电源模式 可以让你的平板关闭显示屏而不关机 甚至开启高性能模式等等 有这样需求的可以试试 博主是为了让台电X80HD的win8的平板可以关闭显示屏进行运行 从而可以利用其做一台
  • MySQL8.0.12 EXPLAIN EXTENDED 报错问题

    今天测试时发现有一条命令报错 explain EXTENDED SELECT count from OORDER where O CARRIER ID lt 10000 网上的教程都是explain EXTENDED 后来查看官方文档发现e
  • Open3D (C++) 点云随机渲染颜色

    目录 一 概述 二 代码实现 三 结果展示 一 概述 Open3D中颜色的取值范围是 0 0 1 0 C 中的函数rand 可以用来生成随机数 其返回值是整数 要生成0 0 1 0之间的浮点数 必须经过转换 首先生成一个0 N的随机数 再除
  • Hololens入门开发(二)unity项目设置及MR开发包导入

    一 新建一个u3d项目 二 将unity的平台切换为Universal Windows Platform 三 MR开发包导入 开发包链接来自Github 根据需要的版本进行选择 https github com microsoft Mixe
  • Exchange Server 2016 安装部署

    目录 0x01 简介 0x02 环境准备 0x03 添加角色与功能 配置Active Directory 域服务 0x04 安装ExchangeServer 点击 setup 不检查更新 点击 下一步 接受许可 不使用推荐设置 选择邮件角色
  • element-ui 整体替换主题色

    自定义主题 Element 默认提供一套主题 CSS 命名采用 BEM 的风格 方便使用者覆盖样式 我们提供了三种方法 可以进行不同程度的样式自定义 仅替换主题色 如果仅希望更换 Element 的主题色 推荐使用在线主题生成工具 Elem
  • MySQL锁之一:锁详解

    一 什么是死锁 死锁是指两个或两个以上的进程在执行过程中 因争夺资源而造成的一种互相等待的现象 若无外力作用 它们都将无法推进下去 此时称系统处于死锁状态或系统产生了死锁 这些永远在互相等的进程称为死锁进程 二 死锁产生的四个必要条件 互斥
  • Go-cli框架Cobra

    Cobra是前go语言负责人spf13开发的一款go cli框架 可以轻松规范的处理cli应用场景 项目地址 https github com spf13 cobra作者博客 https spf13 com 所谓官网 https cobra
  • len()函数

    len 函数 描述 len 函数返回对象 字符 列表 元组等 长度或项目个数 语法 len 方法语法 len s 参数 s 对象 返回值 返回对象长度 实例 以下实例展示了 len 的使用方法 str 1111111111111 print
  • Python 11 (paramiko模块,ssh密钥,进程线程,锁,信号量)

    本节内容 paramiko模块 基于SSH用于连接远程服务器并执行相关操作 paramiko模块 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接 Author yyqian import paramiko 创建SS
  • android studio f5,AndroidStudio 快捷鍵

    8种机械键盘轴体对比 本人程序员 要买一个写代码的键盘 请问红轴和茶轴怎么选 符號說明 gt option alt gt shift gt control gt command gt esc 注 与F6 F7 F12等F功能键开头的组合的快
  • java中String、StringBuffer、StringBuilder的区别

    java中String StringBuffer StringBuilder是编程中经常使用的字符串类 他们之间的区别也是经常在面试中会问到的问题 现在总结一下 看看他们的不同与相同 三者共同之处 都是final类 不允许被继承 主要是从性
  • msvcp140.dll丢失如何修复?win7丢失msvcp140.dll的修复方法

    有win7用户在操作电脑的过程中 遇到msvcp140 dll丢失的情况 这是怎么回事 一般是由于系统中丢失dll文件导致的 下面就和小编一起来看看具体的解决办法吧 MSVCP文件的版本 这是我电脑上安装的各版本 VC 版本间互相不重复 并
  • javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题(window10)

    目录 步骤一 找到JDK下的bin目录 运行cmd 输入javac 能提示 说明环境配置有问题 步骤二 cmd输入 path 步骤三 看看下载的JDK包解压后目录对不对 步骤四 检查是否有环境冲突 最后 环境变量配置 描述 打开cmd 输入
  • 前后台交互时客户端请求的中文字变成问号

    今天在写form表单的时候发现提交的中文字在后台接收的时候变成了 如下图 经过检查发现是编码格式的不统一的问题 前台给数据设置了编码格式 而后台没有设置编码格式 就造成了中文字不能识别
  • spring boot中web容器配置

    web容器配置 spring boot 默认的web容器是 tomcat 如果需要换成其他的 web 容器 可以如下配置