From 6d057b8d4daf69b30498c447d56bfe431c0f82a4 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 24 Nov 2025 11:24:06 +0800 Subject: [PATCH] !208 使用外部中间件时,如:金蝶、东方通 在不重启整个中间件的情况下,二次部署或多个服务同时部署在一个虚拟机下(JVM) IdTypeEnvir… --- yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java index 3a67b90..0ea6bf2 100644 --- a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java @@ -9,7 +9,10 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.core.env.ConfigurableEnvironment; +import org.springframework.core.env.MapPropertySource; +import java.util.HashMap; +import java.util.Map; import java.util.Set; /** @@ -56,11 +59,19 @@ public class IdTypeEnvironmentPostProcessor implements EnvironmentPostProcessor } public IdType getIdType(ConfigurableEnvironment environment) { - return environment.getProperty(ID_TYPE_KEY, IdType.class); + String value = environment.getProperty(ID_TYPE_KEY); + try { + return StrUtil.isNotBlank(value) ? IdType.valueOf(value) : IdType.NONE; + } catch (IllegalArgumentException ex) { + log.error("[getIdType][无法解析 id-type 配置值({})]", value, ex); + return IdType.NONE; + } } public void setIdType(ConfigurableEnvironment environment, IdType idType) { - environment.getSystemProperties().put(ID_TYPE_KEY, idType); + Map map = new HashMap<>(); + map.put(ID_TYPE_KEY, idType); + environment.getPropertySources().addFirst(new MapPropertySource("mybatisPlusIdType", map)); log.info("[setIdType][修改 MyBatis Plus 的 idType 为({})]", idType); } -- libgit2 0.21.4