国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))

這篇具有很好參考價(jià)值的文章主要介紹了@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))

一、出問(wèn)題的經(jīng)過(guò)及其原因

在工作中,通過(guò)Swagger2對(duì)項(xiàng)目的controller進(jìn)行配置,以便于用戶測(cè)試restful服務(wù)接口提高開發(fā)效率。

但是今天卻出現(xiàn)了一個(gè)讓我匪夷所思的問(wèn)題就是在配置類里面加上@EnableWebMvc注解后(開啟web配置支持)啟動(dòng)項(xiàng)目
@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))
發(fā)現(xiàn)訪問(wèn)Swagger的ui界面404
@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))

這個(gè)我就奇怪了,然后我嘗試的把@EnableWebMvc注解放到啟動(dòng)類上
@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))
發(fā)現(xiàn)Swagger-ui.html還是不能訪問(wèn)到報(bào)404錯(cuò)誤,我記得@SpringBootApplication是默認(rèn)開啟自動(dòng)配置webMvc的呀,那為什么會(huì)這樣子呢,

通過(guò)查找資料發(fā)現(xiàn)@EnableWebMvc這個(gè)注解不建議直接配置到@Configuration上

@EnableWebMvc注解會(huì)全面接管SpringMVC,所有的SpringMVC的自動(dòng)配置都失效了,通常不這么干。

查看@EnableWebMvc源碼發(fā)現(xiàn),是繼承的WebMvcConfigurationSupport
@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))

然后我去查了SpringBoot對(duì)MVC的自動(dòng)配置WebMvcAutoConfiguration發(fā)現(xiàn)
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
發(fā)現(xiàn)@EnableWebMvc加入之后會(huì)會(huì)取消SpringBoot的自動(dòng)配置,自會(huì)提供最基礎(chǔ)的功能
@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))
這就是spring-boot的奧秘,不知不覺中犯錯(cuò),你以為是這樣的,其實(shí)你根本就不了解源碼(原理)!

@EnableWebMvc開啟后,意味著springmvc環(huán)境被你完全接管了(若不定義需要那些bean,確實(shí)啥都沒(méi)有)。而WebMvcAutoConfiguration原本是自動(dòng)裝配的(注入一系列mvc的bean),影響它失效最重要的原因在于:@ConditionalOnMissingBean(WebMvcConfigurationSupport.class) ,是的,正是Condition發(fā)揮了的作用(Ioc容器中已經(jīng)有了WebMvcConfigurationSupport,那WebMvcAutoConfiguration就不會(huì)再實(shí)例化注入)。

而WebMvcAutoConfiguration 原本是通過(guò)spring-boot-autoconfigure-2.0.5.RELEASE.jar/META-INF/spring.factories自動(dòng)裝配的。

總結(jié):
后來(lái)才發(fā)現(xiàn)是@EnableWebMvc注解的問(wèn)題,加了這個(gè)注解以后會(huì)導(dǎo)致靜態(tài)資源路徑無(wú)法訪問(wèn)。

所以根據(jù)總結(jié)不難發(fā)現(xiàn),springboot對(duì)MVC的自動(dòng)配置已經(jīng)幫助我們配置了應(yīng)用開發(fā)中大部分的功能,我們幾乎不用去關(guān)閉修改,當(dāng)然對(duì)Swagger的配置SpringBoot也幫助我們自動(dòng)配置完成。

所以當(dāng)我們?nèi)∠鸖pringBoot自動(dòng)配置的時(shí)候加上了@EnableWebMvc之后,就需要自己配置Swagger

二、解決方案

2.1 @EnableWebMvc注解必須去掉。

2.2 自定義配置類,實(shí)現(xiàn)WebMvcConfigurer接口,并添加如下代碼


public void addResourceHandlers(ResourceHandlerRegistry registry) {
  registry.addResourceHandler("swagger-ui.html")
      .addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");
  registry.addResourceHandler("/webjars/**")
      .addResourceLocations("classpath:/META-INF/resources/webjars/");
}

@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))
或者如下
@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-415914.html

package com.bjsxt.swagger.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


public class MyWebMvcConfigurer2 implements WebMvcConfigurer {
    /**
     * 設(shè)置靜態(tài)資源路徑的映射
     */
    
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 解決靜態(tài)資源無(wú)法訪問(wèn)
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        // 解決swagger無(wú)法訪問(wèn)
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        // 解決swagger的js文件無(wú)法訪問(wèn)
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

}

到了這里,關(guān)于@EnableWebMvc注解讓swagger-ui.html無(wú)法打開404報(bào)錯(cuò)問(wèn)題及其解決方案(史上最全最詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Springboot配置Swagger展示API文檔并進(jìn)行接口測(cè)試(doc.html、swagger-ui.html)

    Springboot配置Swagger展示API文檔并進(jìn)行接口測(cè)試(doc.html、swagger-ui.html)

    三、創(chuàng)建一個(gè)測(cè)試接口 http://localhost:8080/doc.html http://localhost:8080/swagger-ui.html

    2024年02月10日
    瀏覽(18)
  • No mapping for GET /swagger-ui.html

    No mapping for GET /swagger-ui.html

    2022-7-23 springboot項(xiàng)目整合swagger2項(xiàng)目,在訪問(wèn) swagger-ui.html 頁(yè)面時(shí)候發(fā)生錯(cuò)誤,如下: 控制臺(tái)報(bào)錯(cuò)為: No mapping for GET /emos-wx-api/swagger-ui.html 解決辦法:讓swagger的配置類 SwaggerConfig 繼承 WebMvcConfigurer 接口并且實(shí)現(xiàn)其中 addResourceHandlers 方法,如下: 再次訪問(wèn) http://localhost:8080/項(xiàng)目

    2024年02月16日
    瀏覽(27)
  • swagger 3.0.0 集成 springboot 2.6+ 生成doc.html 和swagger-ui

    swagger 3.0.0 集成 springboot 2.6+ 生成doc.html 和swagger-ui

    1.項(xiàng)目中引入pom.xml依賴 特別說(shuō)明: doc.html模式 swagger-bootstrap-ui只支持Swagger 2 knife4j是swagger-bootstrap-ui的升級(jí)版,支持Swagger 3。 2.創(chuàng)建Swagger2Config配置類 3.啟動(dòng)類輸出文檔地址 項(xiàng)目運(yùn)行后 控制臺(tái)輸出log見下圖 點(diǎn)擊任意文檔鏈接都可以進(jìn)入對(duì)應(yīng)的文檔

    2024年02月12日
    瀏覽(25)
  • 【JAVA swagger】解決No mapping for GET /swagger-ui.html報(bào)錯(cuò)

    【JAVA swagger】解決No mapping for GET /swagger-ui.html報(bào)錯(cuò)

    完整代碼在最后 一、報(bào)錯(cuò) 1.網(wǎng)頁(yè)報(bào)錯(cuò)404 2.代碼報(bào)錯(cuò) No mapping for GET /swagger-ui.html 二、解決辦法 1.版本回退 之前用的是swagger3.0.0和springboot3.0.6,始終沒(méi)找到合適的解決辦法,故將版本回退至swagger2.9.2和springboot2.7.11 2.Spring Boot 2.6.X后與Swagger有版本沖突問(wèn)題,需要在application.prope

    2024年02月11日
    瀏覽(27)
  • localhost:8080/swagger-ui.html 訪問(wèn)不到 addResourceHandlers springmvc資源處理請(qǐng)求放行swagger

    localhost:8080/swagger-ui.html 訪問(wèn)不到 addResourceHandlers springmvc資源處理請(qǐng)求放行swagger

    無(wú)法訪問(wèn)swagger-ui.html 在swagger2.0+中可以用如下配置 解決辦法:SpringMVC配置文件修改如下 關(guān)鍵是加入下面這一段 原因,為什么要這樣? classpath:/META-INF/resources/ 映射到springfox-swagger-ui-2.9.2.jar!META-INFresources下的文件(包含了swagger-ui.html) classpath:/META-INF/resources/webjars/映射到s

    2024年02月15日
    瀏覽(32)
  • 【Python】Fastapi swagger-ui.css 、swagger-ui-bundle.js 無(wú)法加載,docs無(wú)法加載,redocs無(wú)法使用

    【Python】Fastapi swagger-ui.css 、swagger-ui-bundle.js 無(wú)法加載,docs無(wú)法加載,redocs無(wú)法使用

    使用fastapi的時(shí)候,swagger-ui.css 、swagger-ui-bundle.js、redoc.standalone.js 有時(shí)候無(wú)法加載(國(guó)內(nèi)環(huán)境原因或者是局域網(wǎng)屏蔽),此時(shí)就需要自己用魔法下載好對(duì)應(yīng)文件,然后替換到fastapi里面去。 fastapi里面依靠這2個(gè)函數(shù)實(shí)現(xiàn)docs和redoc: fastapi里面官網(wǎng)給的解決辦法: https://github.com

    2024年02月19日
    瀏覽(18)
  • 【SpringDoc】SpringBoot 3 swagger-ui.html 報(bào)404 SpringDoc 官方文檔問(wèn)題(可能)

    本文針對(duì) SpringBoot 3.x 版本??! SpringDoc v2 官方文檔:https://springdoc.org/v2/ 舊版本的 swagger 和 1.x 版本的SpringDoc 均不支持 SpringBoot 3,所以對(duì)于 SpringBoot3 如下的兩種 Swagger 或 SpringDoc 依賴 均不可用 ,注意,是 不可用 無(wú)數(shù)的文章甚至 官方文檔 都表示,swagger-ui 界面的網(wǎng)址是 htt

    2024年02月16日
    瀏覽(27)
  • 使用阿里druid關(guān)閉stat-view-servlet,和swagger-ui.html不可用

    使用阿里druid關(guān)閉stat-view-servlet,和swagger-ui.html不可用

    一、問(wèn)題描述 (1)druid 使用阿里druid的作為數(shù)據(jù)源的配置,還配置了stat-view-servlet,導(dǎo)致線上項(xiàng)目被掃描出未授權(quán)訪問(wèn)漏洞。簡(jiǎn)單來(lái)說(shuō)就是druid/spring.html,這個(gè)頁(yè)面可以直接訪問(wèn),展示項(xiàng)目相關(guān)信息。 (2)swagger 使用swagger也是同樣的問(wèn)題,swagger在開發(fā)的時(shí)候方便的,但是上

    2024年02月11日
    瀏覽(24)
  • swagger-ui

    swagger-ui

    目錄 一、swagger-ui簡(jiǎn)介 1.1 swagger-ui原理 1.2 swagger-ui特點(diǎn) 二、swagger-ui+springboot頁(yè)面使用 2.1 swagger-ui的依賴 2.2?加入以上依賴要注意的點(diǎn) 2.3 工具類 3.4 swagger-ui 常用注解 @Api (修飾類) @ApiOperation(修飾方法) @ApiParam (接收參數(shù)) @ApiModel (修飾參數(shù)對(duì)象類) @ApiModelProperty(修飾參數(shù)對(duì)象

    2024年02月02日
    瀏覽(22)
  • 接口工具Swagger2和Swagger-UI的使用

    接口工具Swagger2和Swagger-UI的使用

    目錄 一、為什么需要接口可視化工具? 二、Swagger-UI介紹: 1、在項(xiàng)目的pom文件中導(dǎo)入swagger2的依賴 2、下載Swagger-UI項(xiàng)目 3、引入Swagger-UI 4、編寫配置文件 第一種: 第二種: 5、訪問(wèn)api文檔頁(yè)面 6、如果訪問(wèn)失敗,則進(jìn)行第六步,如果訪問(wèn)成功,就不用操作了。 我們的項(xiàng)目通常

    2024年02月08日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包