From ac4005c9ddf10fafc28d00f7052b80ff809e9ac3 Mon Sep 17 00:00:00 2001
From: yueye <768242801@qq.com>
Date: Tue, 11 Jan 2022 16:58:54 +0800
Subject: [PATCH] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=20ruoyi-doc=20?=
=?UTF-8?q?=E6=A8=A1=E5=9D=97=20=E9=9B=86=E6=88=90=20Knife4j?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 2 +-
config/dev/application.yml | 38 +-
config/dev/ruoyi-gen.yml | 4 -
config/dev/ruoyi-system.yml | 4 -
pom.xml | 22 +-
ruoyi-common/ruoyi-common-core/pom.xml | 10 +-
ruoyi-common/ruoyi-common-swagger/pom.xml | 13 +-
.../annotation/EnableCustomSwagger2.java | 15 -
.../config/SwaggerAutoConfiguration.java | 235 ++++----
.../config/SwaggerWebConfiguration.java | 20 -
.../{ => properties}/SwaggerProperties.java | 286 +++++-----
.../main/resources/META-INF/spring.factories | 5 +-
ruoyi-gateway/pom.xml | 12 -
.../ruoyi/gateway/config/SwaggerProvider.java | 73 ---
.../ruoyi/gateway/handler/SwaggerHandler.java | 48 --
ruoyi-modules/ruoyi-file/pom.xml | 2 +-
.../com/ruoyi/file/RuoYiFileApplication.java | 2 -
.../file/controller/SysFileController.java | 88 +--
.../src/main/resources/bootstrap.yml | 66 +--
ruoyi-modules/ruoyi-gen/pom.xml | 7 -
.../com/ruoyi/gen/RuoYiGenApplication.java | 2 -
.../ruoyi/gen/controller/GenController.java | 2 +
.../src/main/resources/bootstrap.yml | 70 +--
ruoyi-modules/ruoyi-system/pom.xml | 13 +-
.../ruoyi/system/RuoYiSystemApplication.java | 2 -
.../src/main/resources/bootstrap.yml | 70 +--
ruoyi-ui/src/api/monitor/job.js | 71 ---
ruoyi-ui/src/api/monitor/jobLog.js | 26 -
ruoyi-ui/src/components/RuoYi/Doc/index.vue | 4 +-
ruoyi-ui/src/components/RuoYi/Git/index.vue | 4 +-
ruoyi-ui/src/router/index.js | 328 ++++++-----
ruoyi-ui/src/views/index.vue | 4 +-
ruoyi-ui/src/views/monitor/job/index.vue | 516 ------------------
ruoyi-ui/src/views/monitor/job/log.vue | 299 ----------
ruoyi-visual/pom.xml | 1 +
ruoyi-visual/ruoyi-doc/pom.xml | 88 +++
.../com/ruoyi/doc/RuoyiDocApplication.java | 19 +
.../src/main/resources/application.yml | 23 +
.../src/main/resources/bootstrap.yml | 33 ++
.../ruoyi-doc/src/main/resources/logback.xml | 97 ++++
sql/ry_system.sql | 4 +-
41 files changed, 912 insertions(+), 1716 deletions(-)
delete mode 100644 ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/annotation/EnableCustomSwagger2.java
delete mode 100644 ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerWebConfiguration.java
rename ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/{ => properties}/SwaggerProperties.java (90%)
delete mode 100644 ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SwaggerProvider.java
delete mode 100644 ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SwaggerHandler.java
delete mode 100644 ruoyi-ui/src/api/monitor/job.js
delete mode 100644 ruoyi-ui/src/api/monitor/jobLog.js
delete mode 100644 ruoyi-ui/src/views/monitor/job/index.vue
delete mode 100644 ruoyi-ui/src/views/monitor/job/log.vue
create mode 100644 ruoyi-visual/ruoyi-doc/pom.xml
create mode 100644 ruoyi-visual/ruoyi-doc/src/main/java/com/ruoyi/doc/RuoyiDocApplication.java
create mode 100644 ruoyi-visual/ruoyi-doc/src/main/resources/application.yml
create mode 100644 ruoyi-visual/ruoyi-doc/src/main/resources/bootstrap.yml
create mode 100644 ruoyi-visual/ruoyi-doc/src/main/resources/logback.xml
diff --git a/README.md b/README.md
index 58e116308..6b7aac7b3 100644
--- a/README.md
+++ b/README.md
@@ -49,7 +49,7 @@
| Redis客户端 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 支持单机、集群配置 |
| 校验框架(待优化) | Validation | [Validation文档](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/) | 增强接口安全性、严谨性 支持国际化 |
| Excel框架(未完成) | Alibaba EasyExcel | [EasyExcel文档](https://www.yuque.com/easyexcel/doc/easyexcel) | 性能优异 扩展性强 |
-| 文档框架(未完成) | Knife4j | [Knife4j文档](https://doc.xiaominfo.com/knife4j/documentation/) | 美化接口文档 |
+| 文档框架 | Knife4j | [Knife4j文档](https://doc.xiaominfo.com/knife4j/documentation/) | 美化接口文档 |
| 工具类框架 | Hutool、Lombok | [Hutool文档](https://www.hutool.cn/docs/) | 减少代码冗余 增加安全性 |
| 代码生成器(未完成) | 适配MP、Knife4j规范化代码 | [Hutool文档](https://www.hutool.cn/docs/) | 一键生成前后端代码 |
| 部署方式(未完成) | Docker | [Docker文档](https://docs.docker.com/) | 容器编排 一键部署业务集群 |
diff --git a/config/dev/application.yml b/config/dev/application.yml
index b441e0afb..f1966db3d 100644
--- a/config/dev/application.yml
+++ b/config/dev/application.yml
@@ -90,7 +90,7 @@ redisson:
# 单节点配置
singleServerConfig:
# 客户端名称
- clientName: ${ruoyi.name}
+ clientName: ${spring.application.name}
# 最小空闲连接数
connectionMinimumIdleSize: 32
# 连接池大小
@@ -158,8 +158,40 @@ mybatis:
# swagger配置
swagger:
- license: Powered By ruoyi
- licenseUrl: https://ruoyi.vip
+ # 是否开启swagger
+ enabled: true
+ # 标题
+ title: '标题:RuoYi-Cloud-Plus微服务权限管理系统_接口文档'
+ # 描述
+ description: '描述:微服务权限管理系统, 具体包括XXX,XXX模块...'
+ # 版本
+ version: '版本号:系统版本...'
+ # 作者信息
+ contact:
+ name: Lion Li
+ email: crazylionli@163.com
+ url: https://gitee.com/JavaLionLi/RuoYi-Cloud-Plus
+
+knife4j:
+ # 是否开启Knife4j增强模式
+ enable: true
+ # 是否开启生产环境保护策略
+ production: true
+ # 登录认证
+ basic:
+ enable: true
+ username: ruoyi
+ password: 123456
+ # 前端Ui的个性化配置属性
+ setting:
+ # 默认语言
+ language: zh-CN
+ # 是否显示Footer
+ enableFooter: true
+ # 是否开启动态参数调试功能
+ enableDynamicParameter: true
+ # 是否在每个Debug调试栏后显示刷新变量按钮
+ enableReloadCacheParameter: true
# seata配置
seata:
diff --git a/config/dev/ruoyi-gen.yml b/config/dev/ruoyi-gen.yml
index 04ddc60a8..eeca6d0e3 100644
--- a/config/dev/ruoyi-gen.yml
+++ b/config/dev/ruoyi-gen.yml
@@ -4,10 +4,6 @@ dubbo:
# 需要远程调用的服务 多个用逗号分割
subscribed-services: ruoyi-system
-# swagger配置
-swagger:
- title: 代码生成接口文档
-
spring:
datasource:
dynamic:
diff --git a/config/dev/ruoyi-system.yml b/config/dev/ruoyi-system.yml
index 42c4928a6..fabe6022d 100644
--- a/config/dev/ruoyi-system.yml
+++ b/config/dev/ruoyi-system.yml
@@ -4,10 +4,6 @@ dubbo:
# 需要远程调用的服务 多个用逗号分割
subscribed-services: ruoyi-file
-# swagger配置
-swagger:
- title: 系统模块接口文档
-
spring:
datasource:
dynamic:
diff --git a/pom.xml b/pom.xml
index b46faac3b..bccac530d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,6 @@
2.0.3
2.5.4
2.2.0
- 3.0.0
1.6.2
1.27.2
2.3.2
@@ -44,6 +43,8 @@
2.7.15
1.0.11
2.3.0
+ 2.0.9
+ 3.0.3
localhost
@@ -184,11 +185,6 @@
-
- io.swagger
- swagger-models
- ${swagger.core.version}
-
io.swagger
swagger-annotations
@@ -231,9 +227,9 @@
-
- commons-collections
- commons-collections
+
+ commons-collections
+ commons-collections
${commons-collections.version}
@@ -271,6 +267,12 @@
${xxl-job.version}
+
+ com.github.xiaoymin
+ knife4j-micro-spring-boot-starter
+ ${knife4j.version}
+
+
@@ -349,4 +351,4 @@
-
\ No newline at end of file
+
diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml
index 8eef60884..acf68473f 100644
--- a/ruoyi-common/ruoyi-common-core/pom.xml
+++ b/ruoyi-common/ruoyi-common-core/pom.xml
@@ -10,7 +10,7 @@
4.0.0
ruoyi-common-core
-
+
ruoyi-common-core核心模块
@@ -22,7 +22,7 @@
-
+
org.springframework.cloud
@@ -131,6 +131,12 @@
hutool-extra
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+
+
diff --git a/ruoyi-common/ruoyi-common-swagger/pom.xml b/ruoyi-common/ruoyi-common-swagger/pom.xml
index ae5694b86..82db15783 100644
--- a/ruoyi-common/ruoyi-common-swagger/pom.xml
+++ b/ruoyi-common/ruoyi-common-swagger/pom.xml
@@ -17,17 +17,22 @@
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
com.ruoyi
ruoyi-common-web
-
+
- io.springfox
- springfox-swagger2
- ${swagger.fox.version}
+ com.github.xiaoymin
+ knife4j-micro-spring-boot-starter
diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/annotation/EnableCustomSwagger2.java b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/annotation/EnableCustomSwagger2.java
deleted file mode 100644
index 2fef0f5a7..000000000
--- a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/annotation/EnableCustomSwagger2.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.ruoyi.common.swagger.annotation;
-
-import com.ruoyi.common.swagger.config.SwaggerAutoConfiguration;
-import org.springframework.context.annotation.Import;
-
-import java.lang.annotation.*;
-
-@Target({ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-@Inherited
-@Import({SwaggerAutoConfiguration.class})
-public @interface EnableCustomSwagger2 {
-
-}
diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerAutoConfiguration.java b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerAutoConfiguration.java
index c6ab11626..44a420753 100644
--- a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerAutoConfiguration.java
+++ b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerAutoConfiguration.java
@@ -1,116 +1,119 @@
-package com.ruoyi.common.swagger.config;
-
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-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.*;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spi.service.contexts.SecurityContext;
-import springfox.documentation.spring.web.plugins.ApiSelectorBuilder;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.function.Predicate;
-
-@Configuration
-@EnableSwagger2
-@EnableAutoConfiguration
-@ConditionalOnProperty(name = "swagger.enabled", matchIfMissing = true)
-public class SwaggerAutoConfiguration {
- /**
- * 默认的排除路径,排除Spring Boot默认的错误处理路径和端点
- */
- private static final List DEFAULT_EXCLUDE_PATH = Arrays.asList("/error", "/actuator/**");
-
- private static final String BASE_PATH = "/**";
-
- @Bean
- @ConditionalOnMissingBean
- public SwaggerProperties swaggerProperties() {
- return new SwaggerProperties();
- }
-
- @Bean
- public Docket api(SwaggerProperties swaggerProperties) {
- // base-path处理
- if (swaggerProperties.getBasePath().isEmpty()) {
- swaggerProperties.getBasePath().add(BASE_PATH);
- }
- // noinspection unchecked
- List> basePath = new ArrayList>();
- swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path)));
-
- // exclude-path处理
- if (swaggerProperties.getExcludePath().isEmpty()) {
- swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH);
- }
-
- List> excludePath = new ArrayList<>();
- swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path)));
-
- ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2).host(swaggerProperties.getHost())
- .apiInfo(apiInfo(swaggerProperties)).select()
- .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()));
-
- swaggerProperties.getBasePath().forEach(p -> builder.paths(PathSelectors.ant(p)));
- swaggerProperties.getExcludePath().forEach(p -> builder.paths(PathSelectors.ant(p).negate()));
-
- return builder.build().securitySchemes(securitySchemes()).securityContexts(securityContexts()).pathMapping("/");
- }
-
- /**
- * 安全模式,这里指定token通过Authorization头请求头传递
- */
- private List securitySchemes() {
- List apiKeyList = new ArrayList();
- apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));
- return apiKeyList;
- }
-
- /**
- * 安全上下文
- */
- private List securityContexts() {
- List securityContexts = new ArrayList<>();
- securityContexts.add(
- SecurityContext.builder()
- .securityReferences(defaultAuth())
- .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
- .build());
- return securityContexts;
- }
-
- /**
- * 默认的全局鉴权策略
- *
- * @return
- */
- private List defaultAuth() {
- AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
- AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
- authorizationScopes[0] = authorizationScope;
- List securityReferences = new ArrayList<>();
- securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
- return securityReferences;
- }
-
- private ApiInfo apiInfo(SwaggerProperties swaggerProperties) {
- return new ApiInfoBuilder()
- .title(swaggerProperties.getTitle())
- .description(swaggerProperties.getDescription())
- .license(swaggerProperties.getLicense())
- .licenseUrl(swaggerProperties.getLicenseUrl())
- .termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl())
- .contact(new Contact(swaggerProperties.getContact().getName(), swaggerProperties.getContact().getUrl(), swaggerProperties.getContact().getEmail()))
- .version(swaggerProperties.getVersion())
- .build();
- }
-}
+package com.ruoyi.common.swagger.config;
+
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
+import com.ruoyi.common.swagger.config.properties.SwaggerProperties;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+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.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.ApiSelectorBuilder;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Predicate;
+
+/**
+ * Swagger 文档配置
+ *
+ * @author Lion Li
+ */
+@Configuration
+@EnableKnife4j
+@EnableConfigurationProperties(SwaggerProperties.class)
+@ConditionalOnProperty(name = "swagger.enabled", matchIfMissing = true)
+public class SwaggerAutoConfiguration {
+
+ /**
+ * 默认的排除路径,排除Spring Boot默认的错误处理路径和端点
+ */
+ private static final List DEFAULT_EXCLUDE_PATH = Arrays.asList("/error", "/actuator/**");
+
+ private static final String BASE_PATH = "/**";
+
+ @Bean
+ public Docket api(SwaggerProperties swaggerProperties) {
+ // base-path处理
+ if (swaggerProperties.getBasePath().isEmpty()) {
+ swaggerProperties.getBasePath().add(BASE_PATH);
+ }
+ // noinspection unchecked
+ List> basePath = new ArrayList<>();
+ swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path)));
+
+ // exclude-path处理
+ if (swaggerProperties.getExcludePath().isEmpty()) {
+ swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH);
+ }
+
+ List> excludePath = new ArrayList<>();
+ swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path)));
+
+ ApiSelectorBuilder builder = new Docket(DocumentationType.OAS_30)
+ .host(swaggerProperties.getHost())
+ .apiInfo(apiInfo(swaggerProperties))
+ .select()
+ .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()));
+
+ swaggerProperties.getBasePath().forEach(p -> builder.paths(PathSelectors.ant(p)));
+ swaggerProperties.getExcludePath().forEach(p -> builder.paths(PathSelectors.ant(p).negate()));
+
+ return builder.build()
+ .securitySchemes(securitySchemes())
+ .securityContexts(securityContexts())
+ .pathMapping("/");
+ }
+
+ /**
+ * 安全模式,这里指定token通过Authorization头请求头传递
+ */
+ private List securitySchemes() {
+ List apiKeyList = new ArrayList<>();
+ apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));
+ return apiKeyList;
+ }
+
+ /**
+ * 安全上下文
+ */
+ private List securityContexts() {
+ List securityContexts = new ArrayList<>();
+ securityContexts.add(
+ SecurityContext.builder()
+ .securityReferences(defaultAuth())
+ .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
+ .build());
+ return securityContexts;
+ }
+
+ /**
+ * 默认的全局鉴权策略
+ */
+ private List defaultAuth() {
+ AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+ AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+ authorizationScopes[0] = authorizationScope;
+ List securityReferences = new ArrayList<>();
+ securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
+ return securityReferences;
+ }
+
+ private ApiInfo apiInfo(SwaggerProperties swaggerProperties) {
+ return new ApiInfoBuilder()
+ .title(swaggerProperties.getTitle())
+ .description(swaggerProperties.getDescription())
+ .license(swaggerProperties.getLicense())
+ .licenseUrl(swaggerProperties.getLicenseUrl())
+ .termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl())
+ .contact(new Contact(swaggerProperties.getContact().getName(), swaggerProperties.getContact().getUrl(), swaggerProperties.getContact().getEmail()))
+ .version(swaggerProperties.getVersion())
+ .build();
+ }
+}
diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerWebConfiguration.java b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerWebConfiguration.java
deleted file mode 100644
index 5adf409f1..000000000
--- a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerWebConfiguration.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ruoyi.common.swagger.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-/**
- * swagger 资源映射路径
- *
- * @author ruoyi
- */
-@Configuration
-public class SwaggerWebConfiguration implements WebMvcConfigurer {
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- /** swagger-ui 地址 */
- registry.addResourceHandler("/swagger-ui/**")
- .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
- }
-}
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerProperties.java b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/properties/SwaggerProperties.java
similarity index 90%
rename from ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerProperties.java
rename to ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/properties/SwaggerProperties.java
index 8a74e048e..12685518f 100644
--- a/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerProperties.java
+++ b/ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/properties/SwaggerProperties.java
@@ -1,140 +1,146 @@
-package com.ruoyi.common.swagger.config;
-
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Data
-@NoArgsConstructor
-@Accessors(chain = true)
-@Component
-@ConfigurationProperties("swagger")
-public class SwaggerProperties {
- /**
- * 是否开启swagger
- */
- private Boolean enabled;
-
- /**
- * swagger会解析的包路径
- **/
- private String basePackage = "";
-
- /**
- * swagger会解析的url规则
- **/
- private List basePath = new ArrayList<>();
-
- /**
- * 在basePath基础上需要排除的url规则
- **/
- private List excludePath = new ArrayList<>();
-
- /**
- * 标题
- **/
- private String title = "";
-
- /**
- * 描述
- **/
- private String description = "";
-
- /**
- * 版本
- **/
- private String version = "";
-
- /**
- * 许可证
- **/
- private String license = "";
-
- /**
- * 许可证URL
- **/
- private String licenseUrl = "";
-
- /**
- * 服务条款URL
- **/
- private String termsOfServiceUrl = "";
-
- /**
- * host信息
- **/
- private String host = "";
-
- /**
- * 联系人信息
- */
- private Contact contact = new Contact();
-
- /**
- * 全局统一鉴权配置
- **/
- private Authorization authorization = new Authorization();
-
- @Data
- @NoArgsConstructor
- @Accessors(chain = true)
- public static class Contact {
- /**
- * 联系人
- **/
- private String name = "";
- /**
- * 联系人url
- **/
- private String url = "";
- /**
- * 联系人email
- **/
- private String email = "";
-
- }
-
- @Data
- @NoArgsConstructor
- @Accessors(chain = true)
- public static class Authorization {
- /**
- * 鉴权策略ID,需要和SecurityReferences ID保持一致
- */
- private String name = "";
-
- /**
- * 需要开启鉴权URL的正则
- */
- private String authRegex = "^.*$";
-
- /**
- * 鉴权作用域列表
- */
- private List authorizationScopeList = new ArrayList<>();
-
- private List tokenUrlList = new ArrayList<>();
-
- }
-
- @Data
- @NoArgsConstructor
- @Accessors(chain = true)
- public static class AuthorizationScope {
- /**
- * 作用域名称
- */
- private String scope = "";
-
- /**
- * 作用域描述
- */
- private String description = "";
-
- }
-}
\ No newline at end of file
+package com.ruoyi.common.swagger.config.properties;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * swagger 配置属性
+ *
+ * @author Lion Li
+ */
+@Data
+@ConfigurationProperties("swagger")
+public class SwaggerProperties {
+
+ /**
+ * 是否开启swagger
+ */
+ private Boolean enabled;
+
+ /**
+ * swagger会解析的包路径
+ **/
+ private String basePackage = "";
+
+ /**
+ * swagger会解析的url规则
+ **/
+ private List basePath = new ArrayList<>();
+
+ /**
+ * 在basePath基础上需要排除的url规则
+ **/
+ private List excludePath = new ArrayList<>();
+
+ /**
+ * 标题
+ **/
+ private String title = "";
+
+ /**
+ * 描述
+ **/
+ private String description = "";
+
+ /**
+ * 版本
+ **/
+ private String version = "";
+
+ /**
+ * 许可证
+ **/
+ private String license = "";
+
+ /**
+ * 许可证URL
+ **/
+ private String licenseUrl = "";
+
+ /**
+ * 服务条款URL
+ **/
+ private String termsOfServiceUrl = "";
+
+ /**
+ * host信息
+ **/
+ private String host = "";
+
+ /**
+ * 联系人信息
+ */
+ private Contact contact = new Contact();
+
+ /**
+ * 全局统一鉴权配置
+ **/
+ private Authorization authorization = new Authorization();
+
+ @Data
+ @NoArgsConstructor
+ @Accessors(chain = true)
+ public static class Contact {
+
+ /**
+ * 联系人
+ **/
+ private String name = "";
+ /**
+ * 联系人url
+ **/
+ private String url = "";
+ /**
+ * 联系人email
+ **/
+ private String email = "";
+
+ }
+
+ @Data
+ @NoArgsConstructor
+ @Accessors(chain = true)
+ public static class Authorization {
+
+ /**
+ * 鉴权策略ID,需要和SecurityReferences ID保持一致
+ */
+ private String name = "";
+
+ /**
+ * 需要开启鉴权URL的正则
+ */
+ private String authRegex = "^.*$";
+
+ /**
+ * 鉴权作用域列表
+ */
+ private List authorizationScopeList = new ArrayList<>();
+
+ private List tokenUrlList = new ArrayList<>();
+
+ }
+
+ @Data
+ @NoArgsConstructor
+ @Accessors(chain = true)
+ public static class AuthorizationScope {
+
+ /**
+ * 作用域名称
+ */
+ private String scope = "";
+
+ /**
+ * 作用域描述
+ */
+ private String description = "";
+
+ }
+
+}
diff --git a/ruoyi-common/ruoyi-common-swagger/src/main/resources/META-INF/spring.factories b/ruoyi-common/ruoyi-common-swagger/src/main/resources/META-INF/spring.factories
index d72ee8044..83dfc5802 100644
--- a/ruoyi-common/ruoyi-common-swagger/src/main/resources/META-INF/spring.factories
+++ b/ruoyi-common/ruoyi-common-swagger/src/main/resources/META-INF/spring.factories
@@ -1,3 +1,2 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- com.ruoyi.common.swagger.config.SwaggerAutoConfiguration,\
- com.ruoyi.common.swagger.config.SwaggerWebConfiguration
\ No newline at end of file
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.ruoyi.common.swagger.config.SwaggerAutoConfiguration
diff --git a/ruoyi-gateway/pom.xml b/ruoyi-gateway/pom.xml
index 87693c7fb..ce1e55206 100644
--- a/ruoyi-gateway/pom.xml
+++ b/ruoyi-gateway/pom.xml
@@ -74,18 +74,6 @@
-
-
- io.springfox
- springfox-swagger-ui
- ${swagger.fox.version}
-
-
- io.springfox
- springfox-swagger2
- ${swagger.fox.version}
-
-
cn.hutool
hutool-captcha
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SwaggerProvider.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SwaggerProvider.java
deleted file mode 100644
index b74e9a959..000000000
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SwaggerProvider.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.ruoyi.gateway.config;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.gateway.config.GatewayProperties;
-import org.springframework.cloud.gateway.route.RouteLocator;
-import org.springframework.cloud.gateway.support.NameUtils;
-import org.springframework.stereotype.Component;
-import org.springframework.web.reactive.config.ResourceHandlerRegistry;
-import org.springframework.web.reactive.config.WebFluxConfigurer;
-import springfox.documentation.swagger.web.SwaggerResource;
-import springfox.documentation.swagger.web.SwaggerResourcesProvider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 聚合系统接口
- *
- * @author ruoyi
- */
-@Component
-public class SwaggerProvider implements SwaggerResourcesProvider, WebFluxConfigurer {
- /**
- * Swagger2默认的url后缀
- */
- public static final String SWAGGER2URL = "/v2/api-docs";
- /**
- * 网关路由
- */
- @Autowired
- private RouteLocator routeLocator;
-
- @Autowired
- private GatewayProperties gatewayProperties;
-
- /**
- * 聚合其他服务接口
- *
- * @return
- */
- @Override
- public List get() {
- List resourceList = new ArrayList<>();
- List routes = new ArrayList<>();
- // 获取网关中配置的route
- routeLocator.getRoutes().subscribe(route -> routes.add(route.getId()));
- gatewayProperties.getRoutes().stream()
- .filter(routeDefinition -> routes
- .contains(routeDefinition.getId()))
- .forEach(routeDefinition -> routeDefinition.getPredicates().stream()
- .filter(predicateDefinition -> "Path".equalsIgnoreCase(predicateDefinition.getName()))
- .filter(predicateDefinition -> !"ruoyi-auth".equalsIgnoreCase(routeDefinition.getId()))
- .forEach(predicateDefinition -> resourceList
- .add(swaggerResource(routeDefinition.getId(), predicateDefinition.getArgs()
- .get(NameUtils.GENERATED_NAME_PREFIX + "0").replace("/**", SWAGGER2URL)))));
- return resourceList;
- }
-
- private SwaggerResource swaggerResource(String name, String location) {
- SwaggerResource swaggerResource = new SwaggerResource();
- swaggerResource.setName(name);
- swaggerResource.setLocation(location);
- swaggerResource.setSwaggerVersion("2.0");
- return swaggerResource;
- }
-
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- /** swagger-ui 地址 */
- registry.addResourceHandler("/swagger-ui/**")
- .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
- }
-}
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SwaggerHandler.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SwaggerHandler.java
deleted file mode 100644
index 58d51d453..000000000
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SwaggerHandler.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.ruoyi.gateway.handler;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import reactor.core.publisher.Mono;
-import springfox.documentation.swagger.web.*;
-
-import java.util.Optional;
-
-@RestController
-@RequestMapping("/swagger-resources")
-public class SwaggerHandler {
- @Autowired(required = false)
- private SecurityConfiguration securityConfiguration;
-
- @Autowired(required = false)
- private UiConfiguration uiConfiguration;
-
- private final SwaggerResourcesProvider swaggerResources;
-
- @Autowired
- public SwaggerHandler(SwaggerResourcesProvider swaggerResources) {
- this.swaggerResources = swaggerResources;
- }
-
- @GetMapping("/configuration/security")
- public Mono> securityConfiguration() {
- return Mono.just(new ResponseEntity<>(
- Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()),
- HttpStatus.OK));
- }
-
- @GetMapping("/configuration/ui")
- public Mono> uiConfiguration() {
- return Mono.just(new ResponseEntity<>(
- Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK));
- }
-
- @SuppressWarnings("rawtypes")
- @GetMapping("")
- public Mono swaggerResources() {
- return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK)));
- }
-}
diff --git a/ruoyi-modules/ruoyi-file/pom.xml b/ruoyi-modules/ruoyi-file/pom.xml
index 84d063b1b..1277cc1da 100644
--- a/ruoyi-modules/ruoyi-file/pom.xml
+++ b/ruoyi-modules/ruoyi-file/pom.xml
@@ -17,7 +17,7 @@
-
+
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java
index ae199a2da..aec4848ac 100644
--- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java
+++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java
@@ -1,6 +1,5 @@
package com.ruoyi.file;
-import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -12,7 +11,6 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
* @author ruoyi
*/
@EnableDubbo
-@EnableCustomSwagger2
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class RuoYiFileApplication {
public static void main(String[] args) {
diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java
index 45bd3c010..a6700241a 100644
--- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java
+++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java
@@ -1,43 +1,45 @@
-package com.ruoyi.file.controller;
-
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.utils.file.FileUtils;
-import com.ruoyi.file.api.domain.SysFile;
-import com.ruoyi.file.service.ISysFileService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * 文件请求处理
- *
- * @author ruoyi
- */
-@RestController
-public class SysFileController {
- private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
-
- @Autowired
- private ISysFileService sysFileService;
-
- /**
- * 文件上传请求
- */
- @PostMapping("upload")
- public R upload(MultipartFile file) {
- try {
- // 上传并返回访问地址
- String url = sysFileService.uploadFile(file);
- SysFile sysFile = new SysFile();
- sysFile.setName(FileUtils.getName(url));
- sysFile.setUrl(url);
- return R.ok(sysFile);
- } catch (Exception e) {
- log.error("上传文件失败", e);
- return R.fail(e.getMessage());
- }
- }
-}
\ No newline at end of file
+package com.ruoyi.file.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.file.FileUtils;
+import com.ruoyi.file.api.domain.SysFile;
+import com.ruoyi.file.service.ISysFileService;
+import io.swagger.annotations.Api;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 文件请求处理
+ *
+ * @author ruoyi
+ */
+@Api(tags = "文件处理")
+@RestController
+public class SysFileController {
+ private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
+
+ @Autowired
+ private ISysFileService sysFileService;
+
+ /**
+ * 文件上传请求
+ */
+ @PostMapping("upload")
+ public R upload(MultipartFile file) {
+ try {
+ // 上传并返回访问地址
+ String url = sysFileService.uploadFile(file);
+ SysFile sysFile = new SysFile();
+ sysFile.setName(FileUtils.getName(url));
+ sysFile.setUrl(url);
+ return R.ok(sysFile);
+ } catch (Exception e) {
+ log.error("上传文件失败", e);
+ return R.fail(e.getMessage());
+ }
+ }
+}
diff --git a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
index ed62fe236..2df52b7ef 100644
--- a/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
@@ -1,33 +1,33 @@
-# Tomcat
-server:
- port: 9300
-
-# Spring
-spring:
- application:
- # 应用名称
- name: ruoyi-file
- profiles:
- # 环境配置
- active: @profiles.active@
-
---- # nacos 配置
-spring:
- cloud:
- nacos:
- # nacos 服务地址
- server-addr: @nacos.server@
- discovery:
- # 注册组
- group: @nacos.discovery.group@
- namespace: ${spring.profiles.active}
- config:
- # 配置组
- group: @nacos.config.group@
- namespace: ${spring.profiles.active}
- # 配置文件格式
- file-extension: yml
- # 共享配置
- shared-configs:
- - data-id: application.${spring.cloud.nacos.config.file-extension}
- refresh: true
+# Tomcat
+server:
+ port: 9300
+
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: ruoyi-file
+ profiles:
+ # 环境配置
+ active: @profiles.active@
+
+--- # nacos 配置
+spring:
+ cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: @nacos.server@
+ discovery:
+ # 注册组
+ group: @nacos.discovery.group@
+ namespace: ${spring.profiles.active}
+ config:
+ # 配置组
+ group: @nacos.config.group@
+ namespace: ${spring.profiles.active}
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - data-id: application.${spring.cloud.nacos.config.file-extension}
+ refresh: true
diff --git a/ruoyi-modules/ruoyi-gen/pom.xml b/ruoyi-modules/ruoyi-gen/pom.xml
index dbbcb137f..05c59674d 100644
--- a/ruoyi-modules/ruoyi-gen/pom.xml
+++ b/ruoyi-modules/ruoyi-gen/pom.xml
@@ -41,13 +41,6 @@
spring-boot-starter-actuator
-
-
- io.springfox
- springfox-swagger-ui
- ${swagger.fox.version}
-
-
org.apache.velocity
diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java
index 0ec6385fa..b8e6d998f 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java
+++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java
@@ -1,7 +1,6 @@
package com.ruoyi.gen;
import com.ruoyi.common.security.annotation.EnableCustomConfig;
-import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -12,7 +11,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @author ruoyi
*/
@EnableCustomConfig
-@EnableCustomSwagger2
@EnableDubbo
@SpringBootApplication
public class RuoYiGenApplication {
diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java
index 07e8cd4c5..d3b09e30d 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java
+++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java
@@ -11,6 +11,7 @@ import com.ruoyi.gen.domain.GenTable;
import com.ruoyi.gen.domain.GenTableColumn;
import com.ruoyi.gen.service.IGenTableColumnService;
import com.ruoyi.gen.service.IGenTableService;
+import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +32,7 @@ import java.util.Map;
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RequestMapping("/gen")
@RestController
+@Api(tags = "代码生成")
public class GenController extends BaseController {
private final IGenTableService genTableService;
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
index 257606797..378eaa911 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
@@ -1,35 +1,35 @@
-# Tomcat
-server:
- port: 9202
-
-# Spring
-spring:
- application:
- # 应用名称
- name: ruoyi-gen
- profiles:
- # 环境配置
- active: @profiles.active@
-
---- # nacos 配置
-spring:
- cloud:
- nacos:
- # nacos 服务地址
- server-addr: @nacos.server@
- discovery:
- # 注册组
- group: @nacos.discovery.group@
- namespace: ${spring.profiles.active}
- config:
- # 配置组
- group: @nacos.config.group@
- namespace: ${spring.profiles.active}
- # 配置文件格式
- file-extension: yml
- # 共享配置
- shared-configs:
- - data-id: application.${spring.cloud.nacos.config.file-extension}
- refresh: true
- - data-id: datasource.${spring.cloud.nacos.config.file-extension}
- refresh: true
\ No newline at end of file
+# Tomcat
+server:
+ port: 9202
+
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: ruoyi-gen
+ profiles:
+ # 环境配置
+ active: @profiles.active@
+
+--- # nacos 配置
+spring:
+ cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: @nacos.server@
+ discovery:
+ # 注册组
+ group: @nacos.discovery.group@
+ namespace: ${spring.profiles.active}
+ config:
+ # 配置组
+ group: @nacos.config.group@
+ namespace: ${spring.profiles.active}
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - data-id: application.${spring.cloud.nacos.config.file-extension}
+ refresh: true
+ - data-id: datasource.${spring.cloud.nacos.config.file-extension}
+ refresh: true
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index 853a6fc2d..e549652e3 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -17,7 +17,7 @@
-
+
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
@@ -29,25 +29,18 @@
spring-cloud-starter-alibaba-nacos-config
-
+
com.alibaba.cloud
spring-cloud-starter-alibaba-sentinel
-
+
org.springframework.boot
spring-boot-starter-actuator
-
-
- io.springfox
- springfox-swagger-ui
- ${swagger.fox.version}
-
-
mysql
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
index fb8285459..f65a998cf 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
@@ -1,7 +1,6 @@
package com.ruoyi.system;
import com.ruoyi.common.security.annotation.EnableCustomConfig;
-import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -12,7 +11,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @author ruoyi
*/
@EnableCustomConfig
-@EnableCustomSwagger2
@EnableDubbo
@SpringBootApplication
public class RuoYiSystemApplication {
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
index 5a5b606ec..3cd20f4cc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -1,35 +1,35 @@
-# Tomcat
-server:
- port: 9201
-
-# Spring
-spring:
- application:
- # 应用名称
- name: ruoyi-system
- profiles:
- # 环境配置
- active: @profiles.active@
-
---- # nacos 配置
-spring:
- cloud:
- nacos:
- # nacos 服务地址
- server-addr: @nacos.server@
- discovery:
- # 注册组
- group: @nacos.discovery.group@
- namespace: ${spring.profiles.active}
- config:
- # 配置组
- group: @nacos.config.group@
- namespace: ${spring.profiles.active}
- # 配置文件格式
- file-extension: yml
- # 共享配置
- shared-configs:
- - data-id: application.${spring.cloud.nacos.config.file-extension}
- refresh: true
- - data-id: datasource.${spring.cloud.nacos.config.file-extension}
- refresh: true
+# Tomcat
+server:
+ port: 9201
+
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: ruoyi-system
+ profiles:
+ # 环境配置
+ active: @profiles.active@
+
+--- # nacos 配置
+spring:
+ cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: @nacos.server@
+ discovery:
+ # 注册组
+ group: @nacos.discovery.group@
+ namespace: ${spring.profiles.active}
+ config:
+ # 配置组
+ group: @nacos.config.group@
+ namespace: ${spring.profiles.active}
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - data-id: application.${spring.cloud.nacos.config.file-extension}
+ refresh: true
+ - data-id: datasource.${spring.cloud.nacos.config.file-extension}
+ refresh: true
diff --git a/ruoyi-ui/src/api/monitor/job.js b/ruoyi-ui/src/api/monitor/job.js
deleted file mode 100644
index 3ee56b251..000000000
--- a/ruoyi-ui/src/api/monitor/job.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import request from '@/utils/request'
-
-// 查询定时任务调度列表
-export function listJob(query) {
- return request({
- url: '/schedule/job/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询定时任务调度详细
-export function getJob(jobId) {
- return request({
- url: '/schedule/job/' + jobId,
- method: 'get'
- })
-}
-
-// 新增定时任务调度
-export function addJob(data) {
- return request({
- url: '/schedule/job',
- method: 'post',
- data: data
- })
-}
-
-// 修改定时任务调度
-export function updateJob(data) {
- return request({
- url: '/schedule/job',
- method: 'put',
- data: data
- })
-}
-
-// 删除定时任务调度
-export function delJob(jobId) {
- return request({
- url: '/schedule/job/' + jobId,
- method: 'delete'
- })
-}
-
-// 任务状态修改
-export function changeJobStatus(jobId, status) {
- const data = {
- jobId,
- status
- }
- return request({
- url: '/schedule/job/changeStatus',
- method: 'put',
- data: data
- })
-}
-
-
-// 定时任务立即执行一次
-export function runJob(jobId, jobGroup) {
- const data = {
- jobId,
- jobGroup
- }
- return request({
- url: '/schedule/job/run',
- method: 'put',
- data: data
- })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/monitor/jobLog.js b/ruoyi-ui/src/api/monitor/jobLog.js
deleted file mode 100644
index 732cc058e..000000000
--- a/ruoyi-ui/src/api/monitor/jobLog.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import request from '@/utils/request'
-
-// 查询调度日志列表
-export function listJobLog(query) {
- return request({
- url: '/schedule/job/log/list',
- method: 'get',
- params: query
- })
-}
-
-// 删除调度日志
-export function delJobLog(jobLogId) {
- return request({
- url: '/schedule/job/log/' + jobLogId,
- method: 'delete'
- })
-}
-
-// 清空调度日志
-export function cleanJobLog() {
- return request({
- url: '/schedule/job/log/clean',
- method: 'delete'
- })
-}
diff --git a/ruoyi-ui/src/components/RuoYi/Doc/index.vue b/ruoyi-ui/src/components/RuoYi/Doc/index.vue
index 6b0403e97..3596e0f74 100644
--- a/ruoyi-ui/src/components/RuoYi/Doc/index.vue
+++ b/ruoyi-ui/src/components/RuoYi/Doc/index.vue
@@ -6,10 +6,10 @@
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/monitor/job/log.vue b/ruoyi-ui/src/views/monitor/job/log.vue
deleted file mode 100644
index 5fd393a03..000000000
--- a/ruoyi-ui/src/views/monitor/job/log.vue
+++ /dev/null
@@ -1,299 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
- 删除
-
-
- 清空
-
-
- 导出
-
-
- 关闭
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ parseTime(scope.row.createTime) }}
-
-
-
-
- 详细
-
-
-
-
-
-
-
-
-
-
-
- {{ form.jobLogId }}
- {{ form.jobName }}
-
-
- {{ form.jobGroup }}
- {{ form.createTime }}
-
-
- {{ form.invokeTarget }}
-
-
- {{ form.jobMessage }}
-
-
-
- 正常
- 失败
-
-
-
- {{ form.exceptionInfo }}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-visual/pom.xml b/ruoyi-visual/pom.xml
index 5a4b0e032..c4b5c494c 100644
--- a/ruoyi-visual/pom.xml
+++ b/ruoyi-visual/pom.xml
@@ -11,6 +11,7 @@
ruoyi-monitor
ruoyi-xxl-job-admin
+ ruoyi-doc
ruoyi-visual
diff --git a/ruoyi-visual/ruoyi-doc/pom.xml b/ruoyi-visual/ruoyi-doc/pom.xml
new file mode 100644
index 000000000..effb8ed7d
--- /dev/null
+++ b/ruoyi-visual/ruoyi-doc/pom.xml
@@ -0,0 +1,88 @@
+
+
+ 4.0.0
+
+ com.ruoyi
+ ruoyi-visual
+ 0.3.0
+
+ ruoyi-doc
+ jar
+
+
+
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ com.github.xiaoymin
+ knife4j-aggregation-spring-boot-starter
+ ${knife4j-aggregation.version}
+
+
+
+ com.ruoyi
+ ruoyi-common-web
+
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+
+
+ repackage
+
+
+
+
+
+
+ com.spotify
+ docker-maven-plugin
+ ${docker.plugin.version}
+
+ ${docker.namespace}/${project.artifactId}:${project.version}
+ ${project.basedir}
+ ${docker.registry.host}
+ ${docker.registry.url}
+ ${docker.registry.url}
+
+
+ /
+ ${project.build.directory}
+ ${project.build.finalName}.jar
+
+
+
+
+
+
+
+
diff --git a/ruoyi-visual/ruoyi-doc/src/main/java/com/ruoyi/doc/RuoyiDocApplication.java b/ruoyi-visual/ruoyi-doc/src/main/java/com/ruoyi/doc/RuoyiDocApplication.java
new file mode 100644
index 000000000..25e0261c6
--- /dev/null
+++ b/ruoyi-visual/ruoyi-doc/src/main/java/com/ruoyi/doc/RuoyiDocApplication.java
@@ -0,0 +1,19 @@
+package com.ruoyi.doc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 文档服务
+ *
+ * @author Lion Li
+ */
+@SpringBootApplication
+public class RuoyiDocApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(RuoyiDocApplication.class, args);
+ System.out.println("(♥◠‿◠)ノ゙ 文档中心 启动成功 ლ(´ڡ`ლ)゙ ");
+ }
+
+}
diff --git a/ruoyi-visual/ruoyi-doc/src/main/resources/application.yml b/ruoyi-visual/ruoyi-doc/src/main/resources/application.yml
new file mode 100644
index 000000000..a54f91018
--- /dev/null
+++ b/ruoyi-visual/ruoyi-doc/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+server:
+ port: 18000
+
+# knife4j聚合配置
+knife4j:
+ enableAggregation: true
+ # cloud模式
+ cloud:
+ # 是否启用
+ enable: true
+ # 网关地址
+ gatewayUri: 127.0.0.1:8080
+ # 需要聚合的服务集合
+ routes:
+ - name: 系统服务
+ uri: ${knife4j.cloud.gatewayUri}
+ location: /system/v2/api-docs
+ - name: 代码生成
+ uri: ${knife4j.cloud.gatewayUri}
+ location: /code/v2/api-docs
+ - name: 文件服务
+ uri: ${knife4j.cloud.gatewayUri}
+ location: /file/v2/api-docs
diff --git a/ruoyi-visual/ruoyi-doc/src/main/resources/bootstrap.yml b/ruoyi-visual/ruoyi-doc/src/main/resources/bootstrap.yml
new file mode 100644
index 000000000..2f88da814
--- /dev/null
+++ b/ruoyi-visual/ruoyi-doc/src/main/resources/bootstrap.yml
@@ -0,0 +1,33 @@
+# Tomcat
+server:
+ port: 9300
+
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: ruoyi-doc
+ profiles:
+ # 环境配置
+ active: @profiles.active@
+
+--- # nacos 配置
+spring:
+ cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: @nacos.server@
+ discovery:
+ # 注册组
+ group: @nacos.discovery.group@
+ namespace: ${spring.profiles.active}
+ config:
+ # 配置组
+ group: @nacos.config.group@
+ namespace: ${spring.profiles.active}
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - data-id: application.${spring.cloud.nacos.config.file-extension}
+ refresh: true
diff --git a/ruoyi-visual/ruoyi-doc/src/main/resources/logback.xml b/ruoyi-visual/ruoyi-doc/src/main/resources/logback.xml
new file mode 100644
index 000000000..e90a32a1c
--- /dev/null
+++ b/ruoyi-visual/ruoyi-doc/src/main/resources/logback.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${console.log.pattern}
+ utf-8
+
+
+
+
+
+ ${log.path}/console.log
+
+
+ ${log.path}/console.%d{yyyy-MM-dd}.log
+
+ 1
+
+
+ ${log.pattern}
+ utf-8
+
+
+
+ INFO
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sql/ry_system.sql b/sql/ry_system.sql
index d33d81c66..1e619cf41 100644
--- a/sql/ry_system.sql
+++ b/sql/ry_system.sql
@@ -174,13 +174,13 @@ insert into sys_menu values('106', '参数设置', '1', '7', 'config',
insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', sysdate(), '', null, '通知公告菜单');
insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate(), '', null, '日志管理菜单');
insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate(), '', null, '在线用户菜单');
-insert into sys_menu values('110', 'XxlJob控制台', '2', '2', 'http://localhost:9900', '', '', 0, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', sysdate(), '', null, '定时任务菜单');
+insert into sys_menu values('110', 'XxlJob控制台', '2', '2', 'http://localhost:9900', '', '', 0, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', sysdate(), '', null, '定时任务菜单');
insert into sys_menu values('111', 'Sentinel控制台', '2', '3', 'http://localhost:8718', '', '', 0, 0, 'C', '0', '0', 'monitor:sentinel:list', 'sentinel', 'admin', sysdate(), '', null, '流量控制菜单');
insert into sys_menu values('112', 'Nacos控制台', '2', '4', 'http://localhost:8848/nacos', '', '', 0, 0, 'C', '0', '0', 'monitor:nacos:list', 'nacos', 'admin', sysdate(), '', null, '服务治理菜单');
insert into sys_menu values('113', 'Admin控制台', '2', '5', 'http://localhost:9100/login', '', '', 0, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', sysdate(), '', null, '服务监控菜单');
insert into sys_menu values('114', '表单构建', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单');
insert into sys_menu values('115', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单');
-insert into sys_menu values('116', '系统接口', '3', '3', 'http://localhost:8080/swagger-ui/index.html', '', '', 0, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单');
+insert into sys_menu values('116', '系统接口', '3', '3', 'http://localhost:18000/doc.html', '', '', 0, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单');
-- 三级菜单
insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'system/operlog/index', '', 1, 0, 'C', '0', '0', 'system:operlog:list', 'form', 'admin', sysdate(), '', null, '操作日志菜单');
insert into sys_menu values('501', '登录日志', '108', '2', 'logininfor', 'system/logininfor/index', '', 1, 0, 'C', '0', '0', 'system:logininfor:list', 'logininfor', 'admin', sysdate(), '', null, '登录日志菜单');