|
|
@@ -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<String, Object> map = new HashMap<>();
|
|
|
+ map.put(ID_TYPE_KEY, idType);
|
|
|
+ environment.getPropertySources().addFirst(new MapPropertySource("mybatisPlusIdType", map));
|
|
|
log.info("[setIdType][修改 MyBatis Plus 的 idType 为({})]", idType);
|
|
|
}
|
|
|
|