From deb4029f01d62ebc70b18df890d24f812298c279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=96=8C=E5=B3=B0?= Date: Fri, 7 Aug 2026 16:03:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(launch):=20=E6=B7=BB=E5=8A=A0=20Nacos=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=AF=BC=E5=85=A5=E6=8E=A7=E5=88=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/launch/BladeApplication.java | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/blade-core-launch/src/main/java/org/springblade/core/launch/BladeApplication.java b/blade-core-launch/src/main/java/org/springblade/core/launch/BladeApplication.java index c2e4ee8..10390d9 100644 --- a/blade-core-launch/src/main/java/org/springblade/core/launch/BladeApplication.java +++ b/blade-core-launch/src/main/java/org/springblade/core/launch/BladeApplication.java @@ -46,6 +46,20 @@ import java.util.*; */ public class BladeApplication { + /** + * 是否注入 Blade 默认的 Nacos spring.config.import。 + */ + public static final String NACOS_IMPORT_ENABLED_PROPERTY = "blade.launcher.nacos.import.enabled"; + + /** + * 是否注入 LauncherService 中的 Nacos 系统属性配置。 + */ + public static final String NACOS_CONFIG_ENABLED_PROPERTY = "blade.launcher.nacos.config.enabled"; + + private static final String NACOS_IMPORT_ENABLED_ENV = "BLADE_LAUNCHER_NACOS_IMPORT_ENABLED"; + + private static final String NACOS_CONFIG_ENABLED_ENV = "BLADE_LAUNCHER_NACOS_CONFIG_ENABLED"; + /** * 启动SpringBoot应用,不使用自定义SpringApplicationBuilder * @@ -120,6 +134,40 @@ public class BladeApplication { return StringUtils.hasText(osName) && !(AppConstant.OS_NAME_LINUX.equalsIgnoreCase(osName)); } + /** + * 是否启用 Blade 默认的 Nacos 配置导入。 + * + * @return true 表示启用 + */ + public static boolean isNacosImportEnabled() { + return getBoolean(NACOS_IMPORT_ENABLED_PROPERTY, NACOS_IMPORT_ENABLED_ENV, true); + } + + /** + * 是否启用 LauncherService 中的 Nacos 系统属性配置。 + * + * @return true 表示启用 + */ + public static boolean isNacosConfigEnabled() { + return getBoolean(NACOS_CONFIG_ENABLED_PROPERTY, NACOS_CONFIG_ENABLED_ENV, true); + } + + /** + * 关闭 Blade 启动阶段的 Nacos 默认配置注入,改由应用自身配置文件声明。 + */ + public static void disableNacosLaunchConfig() { + System.setProperty(NACOS_IMPORT_ENABLED_PROPERTY, Boolean.FALSE.toString()); + System.setProperty(NACOS_CONFIG_ENABLED_PROPERTY, Boolean.FALSE.toString()); + } + + private static boolean getBoolean(String propertyName, String envName, boolean defaultValue) { + String value = System.getProperty(propertyName); + if (!StringUtils.hasText(value)) { + value = System.getenv(envName); + } + return StringUtils.hasText(value) ? Boolean.parseBoolean(value) : defaultValue; + } + /** * 配置环境变量 @@ -199,7 +247,9 @@ public class BladeApplication { defaultProperties.setProperty("spring.sleuth.sampler.percentage", "1.0"); defaultProperties.setProperty("spring.cloud.alibaba.seata.tx-service-group", appName.concat(NacosConstant.NACOS_GROUP_SUFFIX)); defaultProperties.setProperty("nacos.logging.default.config.enabled", "false"); - defaultProperties.setProperty("spring.config.import", String.join(",", NacosConstant.dataId(), NacosConstant.dataId(profile), NacosConstant.dataId(appName, profile))); + if (isNacosImportEnabled()) { + defaultProperties.setProperty("spring.config.import", String.join(",", NacosConstant.dataId(), NacosConstant.dataId(profile), NacosConstant.dataId(appName, profile))); + } return defaultProperties; }