diff --git a/ruoyi-common/ruoyi-common-web/pom.xml b/ruoyi-common/ruoyi-common-web/pom.xml
index f1a60894..978a9a66 100644
--- a/ruoyi-common/ruoyi-common-web/pom.xml
+++ b/ruoyi-common/ruoyi-common-web/pom.xml
@@ -34,5 +34,11 @@
spring-boot-starter-undertow
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+ true
+
+
diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/NacosConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/NacosConfig.java
new file mode 100644
index 00000000..67280d5e
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/NacosConfig.java
@@ -0,0 +1,38 @@
+package com.ruoyi.common.web.config;
+
+import com.alibaba.cloud.nacos.ConditionalOnNacosDiscoveryEnabled;
+import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
+import com.alibaba.cloud.nacos.NacosServiceManager;
+import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
+import com.alibaba.cloud.nacos.discovery.NacosDiscoveryClientConfiguration;
+import com.alibaba.cloud.nacos.discovery.NacosWatch;
+import com.ruoyi.common.web.nacos.CustomNacosWatch;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.client.ConditionalOnBlockingDiscoveryEnabled;
+import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 自定义 nacos 监听 解决与 Undertow 整合报错问题
+ *
+ * @author Lion Li
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnDiscoveryEnabled
+@ConditionalOnBlockingDiscoveryEnabled
+@ConditionalOnNacosDiscoveryEnabled
+@AutoConfigureBefore(NacosDiscoveryClientConfiguration.class)
+@AutoConfigureAfter(NacosDiscoveryAutoConfiguration.class)
+public class NacosConfig {
+
+ @Bean
+ @ConditionalOnProperty(value = "spring.cloud.nacos.discovery.watch.enabled", matchIfMissing = true)
+ public NacosWatch nacosWatch(NacosServiceManager nacosServiceManager,
+ NacosDiscoveryProperties nacosDiscoveryProperties) {
+ return new CustomNacosWatch(nacosServiceManager, nacosDiscoveryProperties);
+ }
+
+}
diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/nacos/CustomNacosWatch.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/nacos/CustomNacosWatch.java
new file mode 100644
index 00000000..8aacb509
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/nacos/CustomNacosWatch.java
@@ -0,0 +1,25 @@
+package com.ruoyi.common.web.nacos;
+
+import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
+import com.alibaba.cloud.nacos.NacosServiceManager;
+import com.alibaba.cloud.nacos.discovery.NacosWatch;
+
+/**
+ * 自定义 nacos 监听
+ *
+ * @author Lion Li
+ */
+public class CustomNacosWatch extends NacosWatch {
+
+ public CustomNacosWatch(NacosServiceManager nacosServiceManager, NacosDiscoveryProperties properties) {
+ super(nacosServiceManager, properties);
+ }
+
+ /**
+ * 重写解决与 Undertow 关闭顺序冲突导致报错问题
+ */
+ @Override
+ public int getPhase() {
+ return Integer.MAX_VALUE;
+ }
+}
diff --git a/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories b/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories
index a6fc05d6..ad7224f2 100644
--- a/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories
+++ b/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring.factories
@@ -1,3 +1,4 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.ruoyi.common.web.config.I18nConfig,\
- com.ruoyi.common.web.config.UndertowConfig
+ com.ruoyi.common.web.config.UndertowConfig,\
+ com.ruoyi.common.web.config.NacosConfig