From e9bfa1396ff47d171b3052a606e0931e6f93cc9c Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期四, 10 四月 2025 12:05:23 +0800
Subject: [PATCH] 还原framework代码

---
 iailab-framework/iailab-common-env/src/main/java/com/iailab/framework/env/config/EnvEnvironmentPostProcessor.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/iailab-framework/iailab-common-env/src/main/java/com/iailab/framework/env/config/EnvEnvironmentPostProcessor.java b/iailab-framework/iailab-common-env/src/main/java/com/iailab/framework/env/config/EnvEnvironmentPostProcessor.java
new file mode 100644
index 0000000..ace59cc
--- /dev/null
+++ b/iailab-framework/iailab-common-env/src/main/java/com/iailab/framework/env/config/EnvEnvironmentPostProcessor.java
@@ -0,0 +1,50 @@
+package com.iailab.framework.env.config;
+
+import cn.hutool.core.util.StrUtil;
+import com.iailab.framework.common.util.collection.SetUtils;
+import com.iailab.framework.env.core.util.EnvUtils;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.env.EnvironmentPostProcessor;
+import org.springframework.core.env.ConfigurableEnvironment;
+
+import java.util.Set;
+
+import static com.iailab.framework.env.core.util.EnvUtils.HOST_NAME_VALUE;
+
+/**
+ * 多环境的 {@link EnvEnvironmentPostProcessor} 实现类
+ * 将 iailab.env.tag 设置到 nacos 等组件对应的 tag 配置项,当且仅当它们不存在时
+ *
+ * @author iailab
+ */
+public class EnvEnvironmentPostProcessor implements EnvironmentPostProcessor {
+
+    private static final Set<String> TARGET_TAG_KEYS = SetUtils.asSet(
+            "spring.cloud.nacos.discovery.metadata.tag" // Nacos 注册中心
+            // MQ TODO
+    );
+
+    @Override
+    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
+        // 0. 设置 ${HOST_NAME} 兜底的环境变量
+        String hostNameKey = StrUtil.subBetween(HOST_NAME_VALUE, "{", "}");
+        if (!environment.containsProperty(hostNameKey)) {
+            environment.getSystemProperties().put(hostNameKey, EnvUtils.getHostName());
+        }
+
+        // 1.1 如果没有 iailab.env.tag 配置项,则不进行配置项的修改
+        String tag = EnvUtils.getTag(environment);
+        if (StrUtil.isEmpty(tag)) {
+            return;
+        }
+        // 1.2 需要修改的配置项
+        for (String targetTagKey : TARGET_TAG_KEYS) {
+            String targetTagValue = environment.getProperty(targetTagKey);
+            if (StrUtil.isNotEmpty(targetTagValue)) {
+                continue;
+            }
+            environment.getSystemProperties().put(targetTagKey, tag);
+        }
+    }
+
+}

--
Gitblit v1.9.3