亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot中使用undertow踩坑記(最新推薦)

 更新時間:2024年08月06日 15:03:43   作者:夜郎king  
這篇文章主要介紹了springboot中使用undertow踩坑記,springboot內置類web中間件,將web服務器管理權交給了容器,本文分步驟給大家介紹的非常詳細,需要的朋友可以參考下

場景:準備基于springboot的靜態(tài)資源實現(xiàn)mp4資源的播放,不同版本的springboot下效果不一樣,可能導致正常的資源不可用。本文測試了幾個版本,也針對這種情況提出了解決建議,希望對你的工作有所幫助。

眾所周知,springboot內置類web中間件,將web服務器管理權交給了容器。在使用時只需要進行申明即可。

本文實驗的環(huán)境如下:

windows7+JDK1.8+Eclipse+Maven3.3.9+SpringBoot2.2.x+Undertow2.2.x

一、環(huán)境準備

第一步、配置maven環(huán)境

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.yelang</groupId>
  <artifactId>undertowdemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Undertow測試</name>
  <description>Undertow中間件測試</description>
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.10.RELEASE</version>
        <relativePath />
    </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <!-- 移除掉默認支持的 Tomcat -->
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- 添加 Undertow 容器 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>
  </dependencies>
</project>

第二步、配置申明

# 開發(fā)環(huán)境配置
server:
  # 服務器的HTTP端口,默認為8080
  port: 8080
  servlet:
    # 應用的訪問路徑
    context-path: /
  # undertow 配置
  undertow:
    # HTTP post內容的最大大小。當值為-1時,默認值為大小是無限的
    max-http-post-size: -1
    # 以下的配置會影響buffer,這些buffer會用于服務器連接的IO操作,有點類似netty的池化內存管理
    # 每塊buffer的空間大小,越小的空間被利用越充分
    buffer-size: 512
    # 是否分配的直接內存
    direct-buffers: true
    threads:
      # 設置IO線程數(shù), 它主要執(zhí)行非阻塞的任務,它們會負責多個連接, 默認設置每個CPU核心一個線程
      io: 8
      # 阻塞任務線程池, 當執(zhí)行類似servlet請求阻塞操作, undertow會從這個線程池中取得線程,它的值設置取決于系統(tǒng)的負載
      worker: 256
#  # tomcat 配置
#  tomcat:
#    # tomcat的URI編碼
#    uri-encoding: UTF-8
#    # tomcat最大線程數(shù),默認為200
#    max-threads: 500
#    # Tomcat啟動初始化的線程數(shù),默認值25
#    min-spare-threads: 30

第三步、靜態(tài)資源映射

package com.yelang.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
 * 通用配置
 * @author wzh
 */
@Configuration
public class ResourcesConfig implements WebMvcConfigurer {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    /** 本地文件上傳路徑 */
    registry.addResourceHandler("/profile/**").addResourceLocations("file:D:/wzh/uploadPath/");
    /** swagger配置 */
    registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  }
}

以上代碼標注了系統(tǒng)對外開放的靜態(tài)資源,正常情況下,將資源拷貝到相應的目錄下,就可以訪問相應資源。

http://localhost:8080/profile/2.mp4

二、使用springboot2.2.11、springboot2.2.12、springboot2.2.13這三個版本正常mp4也會無法加載。估計是這幾個版本存在一些設置。

三、如果是生產采用了上述幾個版本的sringboot,如果需要對mp4等資源進行預覽查看的話。

建議如下:第一、調整springboot的版本,調整到支持的版本。第二、不再使用profile的方式提供視頻資源,采用nginx等組件。第三、采用第三方文件系統(tǒng)。第四種、將undertow容器替換成tomcat等其他容器也可以。

小調查:在你的生產環(huán)境中,是使用內置容器嗎?使用undertow這種nio的容器的有多少?歡迎大家反饋。

到此這篇關于springboot中使用undertow踩坑記的文章就介紹到這了,更多相關springboot使用undertow內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 如何使用Spring AOP的通知類型及創(chuàng)建通知

    如何使用Spring AOP的通知類型及創(chuàng)建通知

    這篇文章主要給大家介紹了關于如何使用Spring AOP的通知類型及創(chuàng)建通知的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring AOP具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • Springboot GET和POST請求參數(shù)獲取方式小結

    Springboot GET和POST請求參數(shù)獲取方式小結

    Spring Boot GET和POST請求參數(shù)獲取是開發(fā)人員經(jīng)常需要解決的問題,本文主要介紹了Springboot GET和POST請求參數(shù)獲取方式小結,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Spring boot多線程配置方法

    Spring boot多線程配置方法

    這篇文章主要為大家詳細介紹了Spring boot多線程配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 如何利用JConsole觀察分析Java程序的運行并進行排錯調優(yōu)

    如何利用JConsole觀察分析Java程序的運行并進行排錯調優(yōu)

    從Java 5開始 引入了 JConsole。JConsole 是一個內置 Java 性能分析器,可以從命令行或在 GUI shell 中運行。您可以輕松地使用 JConsole(或者,它更高端的 “近親” VisualVM )來監(jiān)控 Java 應用程序性能和跟蹤 Java 中的代碼
    2015-12-12
  • java如何根據(jù)時間戳生成有序ID

    java如何根據(jù)時間戳生成有序ID

    這篇文章主要介紹了java如何根據(jù)時間戳生成有序ID問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java日常練習題,每天進步一點點(31)

    Java日常練習題,每天進步一點點(31)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Springboot結合rabbitmq實現(xiàn)的死信隊列

    Springboot結合rabbitmq實現(xiàn)的死信隊列

    為了保證訂單業(yè)務的消息數(shù)據(jù)不丟失,需要使用到RabbitMQ的死信隊列機制,本文主要介紹了Springboot結合rabbitmq實現(xiàn)的死信隊列,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 淺談Spring Data如何簡化數(shù)據(jù)操作的方法

    淺談Spring Data如何簡化數(shù)據(jù)操作的方法

    這篇文章主要介紹了看Spring Data如何簡化數(shù)據(jù)操作的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Java單例模式的講解

    Java單例模式的講解

    今天小編就為大家分享一篇關于Java單例模式的講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • idea 創(chuàng)建properties配置文件的步驟

    idea 創(chuàng)建properties配置文件的步驟

    這篇文章主要介紹了idea 創(chuàng)建properties配置文件的步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評論