Bläddra i källkod

bump: 发布2.4.1

details see: https://helio.uncarbon.cc/#/i18n/zh-CN/appendix/change-log
Uncarbon 1 år sedan
förälder
incheckning
51e01b3454

+ 2 - 1
helio-core/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-core</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 2 - 1
helio-starter-aop/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-aop</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 2 - 6
helio-starter-cloud/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-cloud</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 
@@ -26,11 +27,6 @@
         </dependency>
 
         <!-- 这里写其他第三方依赖 -->
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>

+ 3 - 2
helio-starter-crud/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-crud</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
     </properties>
@@ -54,7 +55,7 @@
 
         <dependency>
             <groupId>com.baomidou</groupId>
-            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
             <optional>true</optional>
         </dependency>
     </dependencies>

+ 2 - 2
helio-starter-crud/src/main/java/cc/uncarbon/framework/crud/config/DynamicDataSourceAutoConfiguration.java → helio-starter-crud/src/main/java/cc/uncarbon/framework/crud/config/HelioDynamicDataSourceAutoConfiguration.java

@@ -3,7 +3,7 @@ package cc.uncarbon.framework.crud.config;
 import cc.uncarbon.framework.crud.dynamicdatasource.DataSourceDefinitionProvider;
 import cc.uncarbon.framework.crud.dynamicdatasource.HelioDynamicDataSourceRegistry;
 import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
-import com.baomidou.dynamic.datasource.creator.HikariDataSourceCreator;
+import com.baomidou.dynamic.datasource.creator.hikaricp.HikariDataSourceCreator;
 import org.springframework.beans.factory.ObjectProvider;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -15,7 +15,7 @@ import org.springframework.context.annotation.Bean;
  * @author Uncarbon
  */
 @ConditionalOnClass(name = "com.baomidou.dynamic.datasource.DynamicRoutingDataSource")
-public class DynamicDataSourceAutoConfiguration {
+public class HelioDynamicDataSourceAutoConfiguration {
 
     @ConditionalOnBean(value = DynamicRoutingDataSource.class)
     @Bean

+ 7 - 0
helio-starter-crud/src/main/java/cc/uncarbon/framework/crud/dynamicdatasource/DataSourceDefinitionProvider.java

@@ -12,4 +12,11 @@ public interface DataSourceDefinitionProvider {
      */
     DataSourceDefinition getDataSourceDefinition(String dataSourceName);
 
+    /**
+     * 在通过 baomidou/dynamic-datasource 创建数据源之前,修改配置
+     * 如:补充设置 HikariCP 的 maxPoolSize、connectionTimeout、idleTimeout 等
+     * @param dataSourceProperty 数据源配置;为了减少不必要的外部依赖,需要强行转换为 com.baomidou.dynamic.datasource.creator.DataSourceProperty 后,再赋值对象字段
+     */
+    default void beforeCreateDataSourceThroughBaomidou(Object dataSourceProperty) {}
+
 }

+ 9 - 8
helio-starter-crud/src/main/java/cc/uncarbon/framework/crud/dynamicdatasource/HelioDynamicDataSourceRegistry.java

@@ -2,9 +2,9 @@ package cc.uncarbon.framework.crud.dynamicdatasource;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
-import com.baomidou.dynamic.datasource.creator.HikariDataSourceCreator;
-import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
-import com.zaxxer.hikari.HikariDataSource;
+import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
+import com.baomidou.dynamic.datasource.creator.hikaricp.HikariCpConfig;
+import com.baomidou.dynamic.datasource.creator.hikaricp.HikariDataSourceCreator;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.ObjectProvider;
@@ -66,16 +66,17 @@ public class HelioDynamicDataSourceRegistry {
                 BeanUtil.copyProperties(dataSourceDefinition, dataSourceProperty);
 
                 // 补充字段
-                dataSourceProperty
-                        .setPoolName(dataSourceDefinition.getName())
-                        .setType(HikariDataSource.class);
+                dataSourceProperty.setPoolName(dataSourceDefinition.getName());
+                dataSourceProperty.setHikari(new HikariCpConfig());
+
+                provider.beforeCreateDataSourceThroughBaomidou(dataSourceProperty);
 
                 // 创建动态数据源
                 DataSource dataSource = dataSourceCreator.createDataSource(dataSourceProperty);
 
                 // 添加新数据源
                 dynamicRoutingDataSource.addDataSource(dataSourceName, dataSource);
-                log.info("已动态添加新数据源 {}", dataSourceName);
+                log.info("[crud][动态数据源] >> 已动态添加新数据源 {}", dataSourceName);
 
                 successFlag = true;
                 break;
@@ -83,7 +84,7 @@ public class HelioDynamicDataSourceRegistry {
         }
 
         if (!successFlag) {
-            log.error("动态添加新数据源失败,原因:没有 DataSourceDefinitionProvider 提供 {} 的 DataSourceDefinition",
+            log.error("[crud][动态数据源] >> 动态添加新数据源失败,原因:没有 DataSourceDefinitionProvider 提供 {} 的 DataSourceDefinition",
                     dataSourceName);
         }
 

+ 1 - 1
helio-starter-crud/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,2 +1,2 @@
 cc.uncarbon.framework.crud.config.HelioMybatisPlusAutoConfiguration
-cc.uncarbon.framework.crud.config.DynamicDataSourceAutoConfiguration
+cc.uncarbon.framework.crud.config.HelioDynamicDataSourceAutoConfiguration

+ 2 - 1
helio-starter-dubbo/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-dubbo</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 2 - 1
helio-starter-i18n/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-i18n</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 2 - 1
helio-starter-knife4j/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-knife4j</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 2 - 1
helio-starter-rate-limit-redis/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-rate-limit-redis</artifactId>
+    <name>${project.artifactId}</name>
     <description>基于Redis实现的限流组件,内置简易的3种限流策略(全局限流、根据当前用户ID限流、根据客户端IP限流)</description>
 
     <properties>

+ 2 - 1
helio-starter-redis/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-redis</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 2 - 1
helio-starter-rocketmq-aliyun/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-rocketmq-aliyun</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 2 - 1
helio-starter-satoken/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-satoken</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 3 - 2
helio-starter-tenant/pom.xml

@@ -5,11 +5,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>helio-starter-tenant</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
     </properties>
@@ -29,7 +30,7 @@
         <!-- 这里写其他第三方依赖 -->
         <dependency>
             <groupId>com.baomidou</groupId>
-            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
             <optional>true</optional>
         </dependency>
     </dependencies>

+ 6 - 2
helio-starter-tenant/src/main/java/cc/uncarbon/framework/tenant/config/GlobalTenantDataSourceConfiguration.java

@@ -4,12 +4,15 @@ import cc.uncarbon.framework.crud.dynamicdatasource.HelioDynamicDataSourceRegist
 import cc.uncarbon.framework.tenant.tenantdatasource.GlobalTenantDataSourceAdvisor;
 import cc.uncarbon.framework.tenant.tenantdatasource.GlobalTenantDataSourceInterceptor;
 import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
+import com.baomidou.dynamic.datasource.provider.DynamicDataSourceProvider;
 import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Role;
 
+import java.util.List;
+
 /**
  * 基于全局 AOP 的数据源级多租户配置类
  * <a href="https://blog.csdn.net/w57685321/article/details/106823660">参考文章</a>
@@ -20,10 +23,11 @@ public class GlobalTenantDataSourceConfiguration {
 
     @Bean
     @ConditionalOnMissingBean
-    public DynamicRoutingDataSource dynamicRoutingDataSource() {
-        return new DynamicRoutingDataSource();
+    public DynamicRoutingDataSource dynamicRoutingDataSource(DynamicDataSourceProvider ymlDynamicDataSourceProvider) {
+        return new DynamicRoutingDataSource(List.of(ymlDynamicDataSourceProvider));
     }
 
+
     @Bean
     @ConditionalOnMissingBean
     @Role(value = BeanDefinition.ROLE_INFRASTRUCTURE)

+ 1 - 1
helio-starter-tenant/src/main/java/cc/uncarbon/framework/tenant/support/TenantDataSourceSupport.java

@@ -24,7 +24,7 @@ public class TenantDataSourceSupport implements TenantSupport {
             Class.forName("com.baomidou.dynamic.datasource.DynamicRoutingDataSource",
                     false, ClassUtils.getDefaultClassLoader());
         } catch (ClassNotFoundException cnfe) {
-            System.err.println("\n\n ERROR: 没有找到 dynamic-datasource-spring-boot-starter 依赖,请检查是否引入");
+            System.err.println("\n\n ERROR: 没有找到 dynamic-datasource-spring-boot3-starter 依赖,请检查是否引入");
         }
     }
 }

+ 5 - 2
helio-starter-tenant/src/main/java/cc/uncarbon/framework/tenant/tenantdatasource/GlobalTenantDataSourceInterceptor.java

@@ -4,13 +4,14 @@ import cc.uncarbon.framework.core.constant.HelioConstant.CRUD;
 import cc.uncarbon.framework.core.context.TenantContextHolder;
 import cc.uncarbon.framework.crud.dynamicdatasource.HelioDynamicDataSourceRegistry;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
-import java.util.Objects;
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.aopalliance.intercept.MethodInterceptor;
 import org.aopalliance.intercept.MethodInvocation;
 
+import java.util.Objects;
+
 /**
  * 数据源级多租户全局 AOP 处理过程
  *
@@ -38,7 +39,9 @@ public class GlobalTenantDataSourceInterceptor implements MethodInterceptor {
             // 不适合纯数字作为数据源名称,给他拼个前缀
             String tenantDataSourceName = CRUD.COLUMN_TENANT_ID + currentTenantId;
             if (dataSourceRegistry.containsDataSource(tenantDataSourceName, true)) {
-                log.debug("[多租户][数据源级] 使用租户数据源 >> {}", tenantDataSourceName);
+                if (log.isDebugEnabled()) {
+                    log.debug("[多租户][数据源级] 使用租户数据源 >> {}", tenantDataSourceName);
+                }
                 DynamicDataSourceContextHolder.push(tenantDataSourceName);
                 pushedFlag = true;
             }

+ 3 - 1
helio-starter-test/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-test</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 
@@ -23,6 +24,7 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
+            <version>${spring-boot.version}</version>
         </dependency>
     </dependencies>
 </project>

+ 2 - 1
helio-starter-web/pom.xml

@@ -8,11 +8,12 @@
     <parent>
         <artifactId>helio-starters</artifactId>
         <groupId>cc.uncarbon.framework</groupId>
-        <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+        <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>helio-starter-web</artifactId>
+    <name>${project.artifactId}</name>
 
     <properties>
 

+ 25 - 20
pom.xml

@@ -24,27 +24,30 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.6</version>
+        <version>3.4.7</version>
     </parent>
 
+    <name>${project.artifactId}</name>
+    <description>Java project for Helio development framework</description>
+    <url>https://github.com/uncarbon97/</url>
+
     <groupId>cc.uncarbon.framework</groupId>
     <artifactId>helio-starters</artifactId>
-    <version>2.4.0</version><!-- BATCH REPLACEMENT MARK -->
+    <version>2.4.1</version><!-- BATCH REPLACEMENT MARK -->
 
     <properties>
         <!-- core versions -->
-        <helio-starters.version>2.4.0</helio-starters.version>
+        <helio-starters.version>2.4.1</helio-starters.version>
         <!-- 可根据实际JDK版本修改;JDK17则改为'17'  JDK21则改为'21' -->
         <java.version>17</java.version>
         <!-- 若变更Spring Boot版本, 上面parent依赖版本也要变 -->
-        <spring-boot.version>3.4.6</spring-boot.version>
+        <spring-boot.version>3.4.7</spring-boot.version>
 
 
         <!-- Spring Cloud versions -->
         <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
         <spring-cloud.version>2023.0.4</spring-cloud.version>
         <spring-cloud-starter.version>4.2.0</spring-cloud-starter.version>
-        <spring-cloud-starter-bootstrap.version>${spring-cloud-starter.version}</spring-cloud-starter-bootstrap.version>
         <spring-cloud-commons.version>${spring-cloud-starter.version}</spring-cloud-commons.version>
         <spring-cloud-context.version>${spring-cloud-starter.version}</spring-cloud-context.version>
 
@@ -74,12 +77,12 @@
         <redisson.version>3.33.0</redisson.version>
         <aspectj.version>1.9.22.1</aspectj.version>
         <ons-client.version>1.8.8.1.Final</ons-client.version>
-        <mybatis-plus-dynamic-datasource.version>3.5.2</mybatis-plus-dynamic-datasource.version>
+        <mybatis-plus-dynamic-datasource.version>4.3.1</mybatis-plus-dynamic-datasource.version>
 
 
         <!-- DB Driver versions -->
         <mysql.version>9.2.0</mysql.version>
-        <postgresql.version>42.7.4</postgresql.version>
+        <postgresql.version>42.7.7</postgresql.version>
 
 
         <!-- Maven properties -->
@@ -98,6 +101,8 @@
         <guava.version>33.2.1-jre</guava.version>
         <commons-compress.version>1.26.2</commons-compress.version>
         <xnio-api.version>3.8.16.Final</xnio-api.version>
+        <commons-lang3.no-vulnerability-version>3.18.0</commons-lang3.no-vulnerability-version>
+        <commons-io.no-vulnerability-version>2.19.0</commons-io.no-vulnerability-version>
     </properties>
 
     <!-- 全局使用 -->
@@ -137,6 +142,18 @@
                 <version>${xnio-api.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-lang3</artifactId>
+                <version>${commons-lang3.no-vulnerability-version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>${commons-io.no-vulnerability-version}</version>
+            </dependency>
+
 
             <!-- sub starters -->
             <dependency>
@@ -271,12 +288,6 @@
                 <version>${spring-cloud-context.version}</version>
             </dependency>
 
-            <dependency>
-                <groupId>org.springframework.cloud</groupId>
-                <artifactId>spring-cloud-starter-bootstrap</artifactId>
-                <version>${spring-cloud-starter-bootstrap.version}</version>
-            </dependency>
-
             <dependency>
                 <groupId>com.alibaba.cloud</groupId>
                 <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
@@ -355,7 +366,7 @@
 
             <dependency>
                 <groupId>com.baomidou</groupId>
-                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+                <artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
                 <version>${mybatis-plus-dynamic-datasource.version}</version>
             </dependency>
 
@@ -429,12 +440,6 @@
                 <version>${sa-token.version}</version>
             </dependency>
 
-            <dependency>
-                <groupId>cn.dev33</groupId>
-                <artifactId>sa-token-redisson-jackson</artifactId>
-                <version>${sa-token.version}</version>
-            </dependency>
-
 
             <!-- TEST dependencies -->
             <dependency>