diff --git a/README.md b/README.md
index 1000f81c..ab1f126f 100644
--- a/README.md
+++ b/README.md
@@ -150,17 +150,17 @@ cors:
| 模块名称 | 模块说明 | 依赖版本 |
| ---------------------------------- | ---------------------------------------- | ------------------------------------------------------------ |
-| continew-starter-core | 核心模块:包含跨域、线程池等自动配置 | Spring Boot:3.1.5
Undertow:2.3.10.Final
Hutool:5.8.23
mica-ip2region:3.1.5.1 |
+| continew-starter-core | 核心模块:包含跨域、线程池等自动配置 | Spring Boot:3.1.7
Undertow:2.3.10.Final
Hutool:5.8.24
mica-ip2region:3.1.5.1 |
| continew-starter-json-jackson | JSON 模块:Jackson 自动配置 | Jackson:2.15.3 |
-| continew-starter-api-doc | API 文档模块:Knife4j 自动配置 | Knife4j:4.3.0 |
+| continew-starter-api-doc | API 文档模块:Knife4j 自动配置 | Knife4j:4.4.0 |
| continew-starter-log | 日志模块:HTTP Trace Pro | |
| continew-starter-storage | 存储模块:本地存储、OSS 自动配置 | |
-| continew-starter-file-excel | 文件处理模块:Excel 相关配置 | Easy Excel:3.3.2 |
+| continew-starter-file-excel | 文件处理模块:Excel 相关配置 | Easy Excel:3.3.4 |
| continew-starter-captcha-graphic | 验证码模块:图形验证码 | Easy Captcha:1.6.2 |
-| continew-starter-cache-redisson | 缓存模块:Redisson 自动配置 | Redisson:3.24.3 |
+| continew-starter-cache-redisson | 缓存模块:Redisson 自动配置 | Redisson:3.25.2 |
| continew-starter-data-mybatis-plus | 数据访问模块:MyBatis Plus 自动配置 | MyBatis Plus:3.5.4.1
dynamic-datasource-spring-boot-starter:4.2.0
P6Spy:3.9.1 |
| continew-starter-auth-satoken | 认证模块:SaToken 自动配置 | Sa-Token:1.37.0 |
-| continew-starter-auth-justauth | 认证模块:JustAuth 自动配置 | Just Auth:1.16.5 |
+| continew-starter-auth-justauth | 认证模块:JustAuth 自动配置 | Just Auth:1.16.6 |
| continew-starter-messaging-mail | 消息模块:邮件 | Jakarta Mail:1.1.0 |
| continew-starter-messaging-sms | 消息模块:短信 | SMS4J:3.0.4 |
| continew-starter-extension | 扩展模块:包含 CRUD 等复杂模组及自动配置 | |
diff --git a/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/project/ProjectProperties.java b/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/project/ProjectProperties.java
index c8025e88..39bdebe2 100644
--- a/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/project/ProjectProperties.java
+++ b/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/project/ProjectProperties.java
@@ -16,7 +16,6 @@
package top.charles7c.continew.starter.core.autoconfigure.project;
-import cn.hutool.core.convert.Convert;
import cn.hutool.extra.spring.SpringUtil;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -82,9 +81,8 @@ public class ProjectProperties {
public static final boolean IP_ADDR_LOCAL_PARSE_ENABLED;
static {
- String underlineCaseProperty = SpringUtil.getProperty("project.ip-addr-local-parse-enabled");
- String camelCaseProperty = SpringUtil.getProperty("project.ipAddrLocalParseEnabled");
- IP_ADDR_LOCAL_PARSE_ENABLED = Convert.toBool(underlineCaseProperty, false) || Convert.toBool(camelCaseProperty, false);
+ IP_ADDR_LOCAL_PARSE_ENABLED = SpringUtil.getProperty("project.ip-addr-local-parse-enabled", boolean.class, false)
+ || SpringUtil.getProperty("project.ipAddrLocalParseEnabled", boolean.class, false);
}
/**
diff --git a/continew-starter-data/continew-starter-data-mybatis-plus/src/main/java/top/charles7c/continew/starter/data/mybatis/plus/autoconfigure/MybatisPlusAutoConfiguration.java b/continew-starter-data/continew-starter-data-mybatis-plus/src/main/java/top/charles7c/continew/starter/data/mybatis/plus/autoconfigure/MybatisPlusAutoConfiguration.java
index 1d455a9f..c184866c 100644
--- a/continew-starter-data/continew-starter-data-mybatis-plus/src/main/java/top/charles7c/continew/starter/data/mybatis/plus/autoconfigure/MybatisPlusAutoConfiguration.java
+++ b/continew-starter-data/continew-starter-data-mybatis-plus/src/main/java/top/charles7c/continew/starter/data/mybatis/plus/autoconfigure/MybatisPlusAutoConfiguration.java
@@ -18,8 +18,10 @@ package top.charles7c.continew.starter.data.mybatis.plus.autoconfigure;
import cn.hutool.core.net.NetUtil;
import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.autoconfigure.DdlApplicationRunner;
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
+import com.baomidou.mybatisplus.extension.ddl.IDdl;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
@@ -28,6 +30,7 @@ import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -39,6 +42,8 @@ import top.charles7c.continew.starter.core.handler.GeneralPropertySourceFactory;
import top.charles7c.continew.starter.data.mybatis.plus.datapermission.DataPermissionFilter;
import top.charles7c.continew.starter.data.mybatis.plus.datapermission.DataPermissionHandlerImpl;
+import java.util.List;
+
/**
* MyBatis Plus 自动配置
*
@@ -46,7 +51,7 @@ import top.charles7c.continew.starter.data.mybatis.plus.datapermission.DataPermi
* @since 1.0.0
*/
@Slf4j
-@AutoConfiguration
+@AutoConfiguration(before = com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.class)
@MapperScan("${mybatis-plus.extension.mapper-package}")
@EnableTransactionManagement(proxyTargetClass = true)
@EnableConfigurationProperties(MyBatisPlusExtensionProperties.class)
@@ -111,6 +116,17 @@ public class MybatisPlusAutoConfiguration {
return paginationInnerInterceptor;
}
+ /**
+ * Spring Boot 3.1.7 升级冲突
+ *
+ * org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'ddlApplicationRunner' is expected to be of type 'org.springframework.boot.Runner' but was actually of type 'org.springframework.beans.factory.support.NullBean' + *
+ */ + @Bean + public DdlApplicationRunner ddlApplicationRunner(@Autowired(required = false) List