Kaynağa Gözat

升级Spring Cloud相关组件到最新版本

RuoYi 4 yıl önce
ebeveyn
işleme
b40e5c19b2

+ 4 - 12
pom.xml

@@ -17,17 +17,17 @@
17 17
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18 18
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
19 19
         <java.version>1.8</java.version>
20
-        <spring-boot.version>2.5.8</spring-boot.version>
21
-        <spring-cloud.version>2020.0.4</spring-cloud.version>
20
+        <spring-boot.version>2.6.2</spring-boot.version>
21
+        <spring-cloud.version>2021.0.0</spring-cloud.version>
22 22
         <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
23 23
         <alibaba.nacos.version>2.0.3</alibaba.nacos.version>
24
-        <spring-boot-admin.version>2.5.4</spring-boot-admin.version>
24
+        <spring-boot-admin.version>2.6.0</spring-boot-admin.version>
25 25
         <spring-boot.mybatis>2.2.0</spring-boot.mybatis>
26 26
         <swagger.fox.version>3.0.0</swagger.fox.version>
27 27
         <swagger.core.version>1.6.2</swagger.core.version>
28 28
         <tobato.version>1.27.2</tobato.version>
29 29
         <kaptcha.version>2.3.2</kaptcha.version>
30
-        <pagehelper.boot.version>1.4.0</pagehelper.boot.version>
30
+        <pagehelper.boot.version>1.4.1</pagehelper.boot.version>
31 31
         <druid.version>1.2.8</druid.version>
32 32
         <dynamic-ds.version>3.5.0</dynamic-ds.version>
33 33
         <commons.io.version>2.11.0</commons.io.version>
@@ -37,7 +37,6 @@
37 37
         <jjwt.version>0.9.1</jjwt.version>
38 38
         <minio.version>8.2.2</minio.version>
39 39
         <poi.version>4.1.2</poi.version>
40
-        <common-pool.version>2.10.0</common-pool.version>
41 40
         <commons-collections.version>3.2.2</commons-collections.version>
42 41
         <transmittable-thread-local.version>2.12.2</transmittable-thread-local.version>
43 42
         <log4j2.version>2.17.1</log4j2.version>
@@ -184,13 +183,6 @@
184 183
                 <version>${transmittable-thread-local.version}</version>
185 184
             </dependency>
186 185
 
187
-            <!-- 公共资源池 -->
188
-            <dependency>
189
-                <groupId>org.apache.commons</groupId>
190
-                <artifactId>commons-pool2</artifactId>
191
-                <version>${common-pool.version}</version>
192
-            </dependency>
193
-
194 186
             <!-- log4j日志组件 -->
195 187
             <dependency>
196 188
                 <groupId>org.apache.logging.log4j</groupId>

+ 0 - 6
ruoyi-common/ruoyi-common-core/pom.xml

@@ -47,12 +47,6 @@
47 47
             <artifactId>transmittable-thread-local</artifactId>
48 48
         </dependency>
49 49
 
50
-        <!-- Apache Commons Pool2 -->
51
-        <dependency>
52
-            <groupId>org.apache.commons</groupId>
53
-            <artifactId>commons-pool2</artifactId>
54
-        </dependency>
55
-
56 50
         <!-- Pagehelper -->
57 51
         <dependency>
58 52
             <groupId>com.github.pagehelper</groupId>

+ 26 - 0
ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/env/ApplicationSeataInitializer.java

@@ -0,0 +1,26 @@
1
+package com.ruoyi.common.datasource.env;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.env.EnvironmentPostProcessor;
5
+import org.springframework.core.Ordered;
6
+import org.springframework.core.env.ConfigurableEnvironment;
7
+
8
+/**
9
+ * seata 在 springboot 2.6.x 存在循环引用问题的处理
10
+ *
11
+ * @author ruoyi
12
+ */
13
+public class ApplicationSeataInitializer implements EnvironmentPostProcessor, Ordered
14
+{
15
+    @Override
16
+    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application)
17
+    {
18
+        System.setProperty("spring.main.allow-circular-references", "true");
19
+    }
20
+
21
+    @Override
22
+    public int getOrder()
23
+    {
24
+        return Ordered.LOWEST_PRECEDENCE;
25
+    }
26
+}

+ 2 - 0
ruoyi-common/ruoyi-common-datasource/src/main/resources/META-INF/spring.factories

@@ -0,0 +1,2 @@
1
+org.springframework.boot.env.EnvironmentPostProcessor=\
2
+    com.ruoyi.common.datasource.env.ApplicationSeataInitializer

+ 54 - 0
ruoyi-common/ruoyi-common-swagger/src/main/java/com/ruoyi/common/swagger/config/SwaggerBeanPostProcessor.java

@@ -0,0 +1,54 @@
1
+package com.ruoyi.common.swagger.config;
2
+
3
+import org.springframework.beans.BeansException;
4
+import org.springframework.beans.factory.config.BeanPostProcessor;
5
+import org.springframework.stereotype.Component;
6
+import org.springframework.util.ReflectionUtils;
7
+import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
8
+import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
9
+import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
10
+import java.lang.reflect.Field;
11
+import java.util.List;
12
+import java.util.stream.Collectors;
13
+
14
+/**
15
+ * swagger 在 springboot 2.6.x 不兼容问题的处理
16
+ *
17
+ * @author ruoyi
18
+ */
19
+@Component
20
+public class SwaggerBeanPostProcessor implements BeanPostProcessor
21
+{
22
+    @Override
23
+    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException
24
+    {
25
+        if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider)
26
+        {
27
+            customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
28
+        }
29
+        return bean;
30
+    }
31
+
32
+    private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings)
33
+    {
34
+        List<T> copy = mappings.stream().filter(mapping -> mapping.getPatternParser() == null)
35
+                .collect(Collectors.toList());
36
+        mappings.clear();
37
+        mappings.addAll(copy);
38
+    }
39
+
40
+    @SuppressWarnings("unchecked")
41
+    private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean)
42
+    {
43
+        try
44
+        {
45
+            Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
46
+            field.setAccessible(true);
47
+            return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
48
+        }
49
+        catch (IllegalArgumentException | IllegalAccessException e)
50
+        {
51
+            throw new IllegalStateException(e);
52
+        }
53
+    }
54
+}

+ 2 - 1
ruoyi-common/ruoyi-common-swagger/src/main/resources/META-INF/spring.factories

@@ -1,3 +1,4 @@
1 1
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 2
   com.ruoyi.common.swagger.config.SwaggerAutoConfiguration,\
3
-  com.ruoyi.common.swagger.config.SwaggerWebConfiguration
3
+  com.ruoyi.common.swagger.config.SwaggerWebConfiguration,\
4
+  com.ruoyi.common.swagger.config.SwaggerBeanPostProcessor

+ 1 - 0
ruoyi-gateway/src/main/resources/bootstrap.yml

@@ -11,6 +11,7 @@ spring:
11 11
     # 环境配置
12 12
     active: dev
13 13
   main:
14
+    allow-circular-references: true
14 15
     allow-bean-definition-overriding: true
15 16
   cloud:
16 17
     nacos:

+ 1 - 1
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java

@@ -121,7 +121,7 @@ public class ScheduleUtils
121 121
      */
122 122
     public static boolean whiteList(String invokeTarget)
123 123
     {
124
-        String packageName = StringUtils.substringBefore(invokeTarget, ")");
124
+        String packageName = StringUtils.substringBefore(invokeTarget, "(");
125 125
         int count = StringUtils.countMatches(packageName, ".");
126 126
         if (count > 1)
127 127
         {

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
sql/ry_config_20211118.sql