fix 修复swagger开关无法控制关闭问题

This commit is contained in:
疯狂的狮子li 2021-05-17 16:36:07 +08:00
parent 2ebcffb22e
commit c4eb641d9c
4 changed files with 124 additions and 98 deletions

21
.editorconfig Normal file
View File

@ -0,0 +1,21 @@
# http://editorconfig.org
root = true
# 空格替代Tab缩进在各种编辑工具下效果一致
[*]
indent_style = space
indent_size = 4
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
[*.java]
indent_style = tab
[*.{json,yml}]
indent_size = 2
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

View File

@ -193,6 +193,11 @@ swagger:
description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...' description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...'
# 版本 # 版本
version: '版本号: ${ruoyi-vue-plus.version}' version: '版本号: ${ruoyi-vue-plus.version}'
# 作者信息
contact:
name: Lion Li
email: crazylionli@163.com
url: https://gitee.com/JavaLionLi/RuoYi-Vue-Plus
# 防止XSS攻击 # 防止XSS攻击
xss: xss:

View File

@ -1,12 +1,9 @@
package com.ruoyi.framework.config; package com.ruoyi.framework.config;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.framework.config.properties.SwaggerProperties;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; 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.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
@ -29,32 +26,10 @@ import java.util.List;
@Configuration @Configuration
@EnableSwagger2 @EnableSwagger2
@EnableKnife4j @EnableKnife4j
@ConditionalOnClass({Docket.class, ApiInfoBuilder.class})
@ConditionalOnProperty(prefix = "swagger", value = "enable", matchIfMissing = true)
public class SwaggerConfig { public class SwaggerConfig {
/**
* 系统基础配置
*/
@Autowired @Autowired
private RuoYiConfig ruoyiConfig; private SwaggerProperties swaggerProperties;
/**
* 标题
*/
@Value("${swagger.title}")
private String title;
/**
* 描述
*/
@Value("${swagger.description}")
private String description;
/**
* 版本
*/
@Value("${swagger.version}")
private String version;
/** /**
* 创建API * 创建API
@ -62,6 +37,7 @@ public class SwaggerConfig {
@Bean @Bean
public Docket createRestApi() { public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
.enable(swaggerProperties.getEnabled())
// 用来创建该API的基本信息展示在文档的页面中自定义展示的信息 // 用来创建该API的基本信息展示在文档的页面中自定义展示的信息
.apiInfo(apiInfo()) .apiInfo(apiInfo())
// 设置哪些接口暴露给Swagger展示 // 设置哪些接口暴露给Swagger展示
@ -117,15 +93,16 @@ public class SwaggerConfig {
*/ */
private ApiInfo apiInfo() { private ApiInfo apiInfo() {
// 用ApiInfoBuilder进行定制 // 用ApiInfoBuilder进行定制
SwaggerProperties.Contact contact = swaggerProperties.getContact();
return new ApiInfoBuilder() return new ApiInfoBuilder()
// 设置标题 // 设置标题
.title(title) .title(swaggerProperties.getTitle())
// 描述 // 描述
.description(description) .description(swaggerProperties.getDescription())
// 作者信息 // 作者信息
.contact(new Contact(ruoyiConfig.getName(), null, null)) .contact(new Contact(contact.getName(), contact.getUrl(), contact.getEmail()))
// 版本 // 版本
.version(version) .version(swaggerProperties.getVersion())
.build(); .build();
} }
} }

View File

@ -2,7 +2,6 @@ package com.ruoyi.framework.config.properties;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -33,4 +32,28 @@ public class SwaggerProperties {
*/ */
private String version; private String version;
/**
* 联系方式
*/
private Contact contact;
@Data
@NoArgsConstructor
public static class Contact{
/**
* 联系人
**/
private String name;
/**
* 联系人url
**/
private String url;
/**
* 联系人email
**/
private String email;
}
} }