springcloud Alibaba 2021.0.1.0 springboot 2.7.0 整合 Swagger3.0 報錯解決方案

来源:https://www.cnblogs.com/m13002622490/archive/2022/05/23/16299758.html
-Advertisement-
Play Games

每個操作符擁有某一級別的優先順序,同時也擁有左結合性或右結合性。當操作符優先順序相同時,操作符的結合性就開始發揮作用了。若表達式中存在連續的相同優先順序操作符,由結合性決定哪個操作符先執行。 #include <stdio.h> void fun(int *p) { *p++; printf("%d ", ...


1. 引入依賴,版本 3.0.0 只引入一個即可

		<dependency>
		    <groupId>io.springfox</groupId>
		    <artifactId>springfox-boot-starter</artifactId>
		    <version>3.0.0</version>
		</dependency>

2. 配置類 SwaggerConfig

package org.fh.config;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties;
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
import org.springframework.boot.actuate.endpoint.ExposableEndpoint;
import org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver;
import org.springframework.boot.actuate.endpoint.web.EndpointMapping;
import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes;
import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint;
import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * 說明:Swagger 介面API生成
 * 作者:FH Admin Q313596790
 * from:fhadmin.cn
 */
@Configuration
@EnableOpenApi
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("org.fh.controller"))	// 為當前包路徑
                .paths(PathSelectors.any())
                .build();
    }

	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				.title("FH Admin Swagger3 RESTful API") 	// 頁面標題
				.version("3.0")								// 版本號
				.description("fhadmin.cn")				    // 描述
				.build();
	}
	
	/**
	  * 增加如下配置可解決Spring Boot 2.6.x以上 與Swagger 3.0.0 不相容問題
	**/
    @Bean
    public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier, ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier controllerEndpointsSupplier, EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties corsProperties, WebEndpointProperties webEndpointProperties, Environment environment) {
        List<ExposableEndpoint<?>> allEndpoints = new ArrayList();
        Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
        allEndpoints.addAll(webEndpoints);
        allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
        allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
        String basePath = webEndpointProperties.getBasePath();
        EndpointMapping endpointMapping = new EndpointMapping(basePath);
        boolean shouldRegisterLinksMapping = this.shouldRegisterLinksMapping(webEndpointProperties, environment, basePath);
        return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes, corsProperties.toCorsConfiguration(), new EndpointLinksResolver(allEndpoints, basePath), shouldRegisterLinksMapping, null);
    }
    private boolean shouldRegisterLinksMapping(WebEndpointProperties webEndpointProperties, Environment environment, String basePath) {
        return webEndpointProperties.getDiscovery().isEnabled() && (StringUtils.hasText(basePath) || ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT));
    }

}

3.Swagger 攔截配置

package org.fh.config;
 
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
/**
 * 說明:Swagger 攔截配置
 * 作者:FH Admin
 * from fhadmin.org
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
 
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.
                addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .resourceChain(false);
    }
 
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/swagger-ui/")
                .setViewName("forward:/swagger-ui/index.html");
    }
}
 

4. 訪問 127.0.0.1:8081/swagger-ui/index.html

5. 介面說明案例

處理類上加註解,比如
@Api("用戶註冊登錄介面")
 
在方法上加註解,比如
@ApiOperation(value = "登錄", notes="請求登錄驗證用戶介面,校驗登錄是否成功")
@ApiImplicitParam(name = "KEYDATA", value = "用戶名密碼混淆碼組合", paramType = "query", required = true, dataType = "String")

 

  ​-----------------------------------------------------------------自定義表單
28. 定義模版:拖拽左側表單元素到右側區域,編輯表單元素,保存表單模版
29. 表單模版:編輯維護表單模版,複製表單模版,修改模版類型,預覽表單模版
30. 我的表單:選擇表單模版,編輯表單規則,是否上傳圖片、附件、開啟富文本、掛靠流程開關等
31. 表單數據:從我的表單進去可增刪改查表單數據,修改表單規則
32. 掛靠記錄:記錄表單數據和流程實例ID關聯記錄,可刪除

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、概述 Apache Sqoop(SQL-to-Hadoop)項目旨在協助RDBMS(Relational Database Management System:關係型資料庫管理系統)與Hadoop之間進行高效的大數據交流。用戶可以在 Sqoop 的幫助下,輕鬆地把關係型資料庫的數據導入到 Had ...
  • 1.先把SplServer解壓 2.解壓後出來Evaluation_CHS 3.點進去,然後點SETUP 4.點擊安裝,然後點擊全新SQL 5.選擇Developer版本 6.資料庫引擎服務框打勾,下麵的目錄不建議放c盤,建議放其他盤去 7.不要動直接下一步 8.不用選中,直接下一步 9.選擇混合模 ...
  • 一、Apache Pig概述 Apache PIG提供一套高級語言平臺,用於對結構化與非結構化數據集進行操作與分析。這種語言被稱為Pig Latin,其屬於一種腳本形式,可直接立足於PIG shell執行或者通過Pig Server進行觸發。用戶所創建的腳本會在初始階段由Pig Latin處理引擎進 ...
  • 商業智能(BI)作為高價值服務, 自20世紀60年代電腦出現時就已經存在, 當時主要的用戶是大型企業和政府部門, 經過半個世紀的發展, 商業智能已經成為中小企業的必備技能. 使用BI, 企業可以從實際數據中提取關鍵事實, 將其轉化為決策的依據. 是否高效地使用商業智能和分析, 是現代環境中成功的關... ...
  • 導讀: 隨著信息化時代的來臨,信息呈現出爆炸式的增長。尤其是在移動互聯網的推動下,每天大量信息涌入讓人們應接不暇,騰訊新聞客戶端的出現,就是以幫助用戶尋找有用信息而出現。這時,面對海量的數據、繁多的業務,如何處理手中的數據,利用數據賦能是今天會議討論的重點。 今天的介紹會圍繞下麵三部分展開: 背景介 ...
  • Vue框架中路由的基本概念、路由對象屬性、vue-router插件的基本使用效果展示。案例分析、圖表展示、附源碼地址獲取。 ...
  • 1.setup setup的兩個傳值 : 父傳子 , 子傳父 , 父後代 2.ref函數 isRef: 檢查一個值是否為一個 ref 對象 vue2和vue3響應式的原理(數據攔截) 3.reactive函數 isReactive: 檢查一個對象是否是由 reactive 創建的響應式代理 ref與 ...
  • 😜博客全棧系統,個人blog+vue2 + node.js + express + mysql+uniapp 包含前端博客展示、後臺管理、node後端服務。包括前後臺完整基礎功能,微信小程式,H5,web前臺站點一鍵置灰,支持移動端適配;管理端常用增·查·改頁面內置代碼自動生成即可,sql文件已附... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...