From ee064fa84c453602c99c092c9abfc700c2b29004 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期六, 15 五月 2021 14:25:48 +0800
Subject: [PATCH] update swagger升级3.0.2

---
 ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java |   90 +++++++++++++++++++++++++-------------------
 1 files changed, 51 insertions(+), 39 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
index 1273785..39c7786 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
@@ -1,56 +1,73 @@
 package com.ruoyi.web.core.config;
 
-import java.util.ArrayList;
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
 import com.ruoyi.common.config.RuoYiConfig;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import springfox.documentation.builders.ApiInfoBuilder;
 import springfox.documentation.builders.PathSelectors;
 import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.service.ApiKey;
-import springfox.documentation.service.AuthorizationScope;
-import springfox.documentation.service.Contact;
-import springfox.documentation.service.SecurityReference;
+import springfox.documentation.service.*;
 import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spi.service.contexts.SecurityContext;
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Swagger2鐨勬帴鍙i厤缃�
- * 
- * @author ruoyi
+ *
+ * @author Lion Li
  */
 @Configuration
 @EnableSwagger2
-public class SwaggerConfig
-{
-    /** 绯荤粺鍩虹閰嶇疆 */
+@EnableKnife4j
+@ConditionalOnClass({Docket.class, ApiInfoBuilder.class})
+@ConditionalOnProperty(prefix = "swagger", value = "enable", matchIfMissing = true)
+public class SwaggerConfig {
+    /**
+     * 绯荤粺鍩虹閰嶇疆
+     */
     @Autowired
     private RuoYiConfig ruoyiConfig;
 
-    /** 鏄惁寮�鍚痵wagger */
-    @Value("${swagger.enabled}")
-    private boolean enabled;
-
-    /** 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑 */
+    /**
+     * 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑
+     */
     @Value("${swagger.pathMapping}")
     private String pathMapping;
+
+    /**
+     * 鏍囬
+     */
+    @Value("${swagger.title}")
+    private String title;
+
+    /**
+     * 鎻忚堪
+     */
+    @Value("${swagger.description}")
+    private String description;
+
+    /**
+     * 鐗堟湰
+     */
+    @Value("${swagger.version}")
+    private String version;
 
     /**
      * 鍒涘缓API
      */
     @Bean
-    public Docket createRestApi()
-    {
+    public Docket createRestApi() {
         return new Docket(DocumentationType.SWAGGER_2)
-                // 鏄惁鍚敤Swagger
-                .enable(enabled)
                 // 鐢ㄦ潵鍒涘缓璇PI鐨勫熀鏈俊鎭紝灞曠ず鍦ㄦ枃妗g殑椤甸潰涓紙鑷畾涔夊睍绀虹殑淇℃伅锛�
                 .apiInfo(apiInfo())
                 // 璁剧疆鍝簺鎺ュ彛鏆撮湶缁橲wagger灞曠ず
@@ -64,16 +81,14 @@
                 .build()
                 /* 璁剧疆瀹夊叏妯″紡锛宻wagger鍙互璁剧疆璁块棶token */
                 .securitySchemes(securitySchemes())
-                .securityContexts(securityContexts())
-                .pathMapping(pathMapping);
+                .securityContexts(securityContexts());
     }
 
     /**
      * 瀹夊叏妯″紡锛岃繖閲屾寚瀹歵oken閫氳繃Authorization澶磋姹傚ご浼犻��
      */
-    private List<ApiKey> securitySchemes()
-    {
-        List<ApiKey> apiKeyList = new ArrayList<ApiKey>();
+    private List<SecurityScheme> securitySchemes() {
+        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
         apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));
         return apiKeyList;
     }
@@ -81,8 +96,7 @@
     /**
      * 瀹夊叏涓婁笅鏂�
      */
-    private List<SecurityContext> securityContexts()
-    {
+    private List<SecurityContext> securityContexts() {
         List<SecurityContext> securityContexts = new ArrayList<>();
         securityContexts.add(
                 SecurityContext.builder()
@@ -95,8 +109,7 @@
     /**
      * 榛樿鐨勫畨鍏ㄤ笂寮曠敤
      */
-    private List<SecurityReference> defaultAuth()
-    {
+    private List<SecurityReference> defaultAuth() {
         AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
         AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
         authorizationScopes[0] = authorizationScope;
@@ -108,18 +121,17 @@
     /**
      * 娣诲姞鎽樿淇℃伅
      */
-    private ApiInfo apiInfo()
-    {
+    private ApiInfo apiInfo() {
         // 鐢ˋpiInfoBuilder杩涜瀹氬埗
         return new ApiInfoBuilder()
                 // 璁剧疆鏍囬
-                .title("鏍囬锛氳嫢渚濈鐞嗙郴缁焈鎺ュ彛鏂囨。")
+                .title(title)
                 // 鎻忚堪
-                .description("鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...")
+                .description(description)
                 // 浣滆�呬俊鎭�
                 .contact(new Contact(ruoyiConfig.getName(), null, null))
                 // 鐗堟湰
-                .version("鐗堟湰鍙�:" + ruoyiConfig.getVersion())
+                .version(version)
                 .build();
     }
 }

--
Gitblit v1.9.3