最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

眾所周知,springboot內(nèi)置類web中間件,將web服務(wù)器管理權(quán)交給了容器。在使用時只需要進(jìn)行申明即可。

本文實(shí)驗(yàn)的環(huán)境如下:

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

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

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

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

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

三、如果是生產(chǎn)采用了上述幾個版本的sringboot,如果需要對mp4等資源進(jìn)行預(yù)覽查看的話。

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

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

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

相關(guān)文章

最新評論

太白县| 晋江市| 吴江市| 襄垣县| 大英县| 大渡口区| 若羌县| 澎湖县| 阿克苏市| 赤城县| 阿合奇县| 墨竹工卡县| 乐陵市| 县级市| 丰都县| 萍乡市| 大同市| 从化市| 丽水市| 金川县| 梨树县| 阿勒泰市| 茂名市| 普兰店市| 自贡市| 怀安县| 武汉市| 阿克| 鹤峰县| 石景山区| 五莲县| 灌南县| 武宣县| 太和县| 文水县| 读书| 鸡西市| 柘城县| 开远市| 景泰县| 新疆|