diff --git a/config/nacos/application-common.yml b/config/nacos/application-common.yml
index e60c9d3e..42aa1082 100644
--- a/config/nacos/application-common.yml
+++ b/config/nacos/application-common.yml
@@ -74,8 +74,6 @@ spring:
sentinel:
# sentinel 开关
enabled: true
- # 取消控制台懒加载
- eager: true
transport:
# dashboard控制台服务名 用于服务发现
# 如无此配置将默认使用下方 dashboard 配置直接注册
diff --git a/ruoyi-common/ruoyi-common-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom/context/SentinelApplicationContextInitializer.java b/ruoyi-common/ruoyi-common-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom/context/SentinelApplicationContextInitializer.java
deleted file mode 100644
index 2e11188b..00000000
--- a/ruoyi-common/ruoyi-common-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom/context/SentinelApplicationContextInitializer.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright 2024-2025 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.sentinel.custom.context;
-
-import com.alibaba.cloud.commons.lang.StringUtils;
-import com.alibaba.cloud.sentinel.SentinelConstants;
-import com.alibaba.cloud.sentinel.SentinelProperties;
-import com.alibaba.csp.sentinel.config.SentinelConfig;
-import com.alibaba.csp.sentinel.init.InitExecutor;
-import com.alibaba.csp.sentinel.log.LogBase;
-import com.alibaba.csp.sentinel.transport.config.TransportConfig;
-
-import org.dromara.common.core.utils.StreamUtils;
-import org.dromara.common.sentinel.config.properties.SentinelCustomProperties;
-import org.springframework.boot.context.properties.bind.Binder;
-import org.springframework.cloud.client.ServiceInstance;
-import org.springframework.cloud.client.discovery.DiscoveryClient;
-import org.springframework.context.ApplicationContextInitializer;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.core.env.ConfigurableEnvironment;
-
-import java.util.List;
-
-import static com.alibaba.cloud.sentinel.SentinelConstants.BLOCK_PAGE_URL_CONF_KEY;
-import static com.alibaba.csp.sentinel.config.SentinelConfig.setConfig;
-
-/**
- * @author yuluo
- * @author yuluo
- */
-
-public class SentinelApplicationContextInitializer implements ApplicationContextInitializer {
-
- @Override
- public void initialize(ConfigurableApplicationContext applicationContext) {
-
- ConfigurableEnvironment environment = applicationContext.getEnvironment();
- String applicationName = environment.getProperty("spring.application.name");
- SentinelProperties sentinelProperties = Binder.get(environment)
- .bindOrCreate(SentinelConstants.PROPERTY_PREFIX, SentinelProperties.class);
- SentinelCustomProperties customProperties = Binder.get(environment)
- .bindOrCreate("spring.cloud.sentinel.transport", SentinelCustomProperties.class);
- DiscoveryClient discoveryClient = applicationContext.getBean(DiscoveryClient.class);
- initSentinelConfig(sentinelProperties, applicationName, customProperties, discoveryClient);
- }
-
- private void initSentinelConfig(SentinelProperties properties, String applicationName,
- SentinelCustomProperties customProperties, DiscoveryClient discoveryClient) {
-
- if (StringUtils.isEmpty(System.getProperty(LogBase.LOG_DIR))
- && StringUtils.isNotBlank(properties.getLog().getDir())) {
- System.setProperty(LogBase.LOG_DIR, properties.getLog().getDir());
- }
- if (StringUtils.isEmpty(System.getProperty(LogBase.LOG_NAME_USE_PID))
- && properties.getLog().isSwitchPid()) {
- System.setProperty(LogBase.LOG_NAME_USE_PID,
- String.valueOf(properties.getLog().isSwitchPid()));
- }
- if (StringUtils.isEmpty(System.getProperty(SentinelConfig.APP_NAME_PROP_KEY))
- && StringUtils.isNotBlank(applicationName)) {
- System.setProperty(SentinelConfig.APP_NAME_PROP_KEY, applicationName);
- }
-
- if (StringUtils.isEmpty(System.getProperty(TransportConfig.SERVER_PORT))
- && StringUtils.isNotBlank(properties.getTransport().getPort())) {
- System.setProperty(TransportConfig.SERVER_PORT,
- properties.getTransport().getPort());
- }
-
- if (StringUtils.isNotBlank(customProperties.getServerName())) {
- List instances = discoveryClient.getInstances(customProperties.getServerName());
- String serverList = StreamUtils.join(instances, instance ->
- String.format("http://%s:%s", instance.getHost(), instance.getPort()));
- System.setProperty(TransportConfig.CONSOLE_SERVER, serverList);
- } else {
- if (StringUtils.isEmpty(System.getProperty(TransportConfig.CONSOLE_SERVER))
- && StringUtils.isNotBlank(properties.getTransport().getDashboard())) {
- System.setProperty(TransportConfig.CONSOLE_SERVER,
- properties.getTransport().getDashboard());
- }
- }
-
- if (StringUtils.isEmpty(System.getProperty(TransportConfig.HEARTBEAT_INTERVAL_MS))
- && StringUtils
- .isNotBlank(properties.getTransport().getHeartbeatIntervalMs())) {
- System.setProperty(TransportConfig.HEARTBEAT_INTERVAL_MS,
- properties.getTransport().getHeartbeatIntervalMs());
- }
- if (StringUtils.isEmpty(System.getProperty(TransportConfig.HEARTBEAT_CLIENT_IP))
- && StringUtils.isNotBlank(properties.getTransport().getClientIp())) {
- System.setProperty(TransportConfig.HEARTBEAT_CLIENT_IP,
- properties.getTransport().getClientIp());
- }
- if (StringUtils.isEmpty(System.getProperty(SentinelConfig.CHARSET))
- && StringUtils.isNotBlank(properties.getMetric().getCharset())) {
- System.setProperty(SentinelConfig.CHARSET,
- properties.getMetric().getCharset());
- }
- if (StringUtils
- .isEmpty(System.getProperty(SentinelConfig.SINGLE_METRIC_FILE_SIZE))
- && StringUtils.isNotBlank(properties.getMetric().getFileSingleSize())) {
- System.setProperty(SentinelConfig.SINGLE_METRIC_FILE_SIZE,
- properties.getMetric().getFileSingleSize());
- }
- if (StringUtils
- .isEmpty(System.getProperty(SentinelConfig.TOTAL_METRIC_FILE_COUNT))
- && StringUtils.isNotBlank(properties.getMetric().getFileTotalCount())) {
- System.setProperty(SentinelConfig.TOTAL_METRIC_FILE_COUNT,
- properties.getMetric().getFileTotalCount());
- }
- if (StringUtils.isEmpty(System.getProperty(SentinelConfig.COLD_FACTOR))
- && StringUtils.isNotBlank(properties.getFlow().getColdFactor())) {
- System.setProperty(SentinelConfig.COLD_FACTOR,
- properties.getFlow().getColdFactor());
- }
- if (StringUtils.isNotBlank(properties.getBlockPage())) {
- setConfig(BLOCK_PAGE_URL_CONF_KEY, properties.getBlockPage());
- }
-
- // earlier initialize
- if (properties.isEager()) {
-
- InitExecutor.doInit();
- }
-
- }
-
-}
diff --git a/ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/SentinelCustomAutoConfiguration.java b/ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/SentinelCustomAutoConfiguration.java
new file mode 100644
index 00000000..edfdcd19
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/SentinelCustomAutoConfiguration.java
@@ -0,0 +1,51 @@
+package org.dromara.common.sentinel.config;
+
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.alibaba.cloud.sentinel.SentinelProperties;
+import com.alibaba.cloud.sentinel.custom.SentinelAutoConfiguration;
+import com.alibaba.csp.sentinel.init.InitExecutor;
+import com.alibaba.csp.sentinel.transport.config.TransportConfig;
+import org.dromara.common.core.utils.StreamUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.context.annotation.Bean;
+
+import java.util.List;
+
+/**
+ * @author Lion Li
+ */
+@AutoConfiguration(before = SentinelAutoConfiguration.class)
+@EnableConfigurationProperties({SentinelProperties.class, SentinelCustomProperties.class})
+public class SentinelCustomAutoConfiguration {
+
+ @Autowired
+ private SentinelProperties properties;
+ @Autowired
+ private SentinelCustomProperties customProperties;
+ @Autowired
+ private DiscoveryClient discoveryClient;
+
+ @Bean
+ public void sentinelInit() {
+ if (StringUtils.isNotBlank(customProperties.getServerName())) {
+ List instances = discoveryClient.getInstances(customProperties.getServerName());
+ String serverList = StreamUtils.join(instances, instance ->
+ String.format("http://%s:%s", instance.getHost(), instance.getPort()));
+ System.setProperty(TransportConfig.CONSOLE_SERVER, serverList);
+ } else {
+ if (StringUtils.isEmpty(System.getProperty(TransportConfig.CONSOLE_SERVER))
+ && StringUtils.isNotBlank(properties.getTransport().getDashboard())) {
+ System.setProperty(TransportConfig.CONSOLE_SERVER,
+ properties.getTransport().getDashboard());
+ }
+ }
+ // 手动初始化 sentinel
+ InitExecutor.doInit();
+ }
+
+
+}
diff --git a/ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/properties/SentinelCustomProperties.java b/ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/SentinelCustomProperties.java
similarity index 84%
rename from ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/properties/SentinelCustomProperties.java
rename to ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/SentinelCustomProperties.java
index 934cd36b..0cd3982c 100644
--- a/ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/properties/SentinelCustomProperties.java
+++ b/ruoyi-common/ruoyi-common-sentinel/src/main/java/org/dromara/common/sentinel/config/SentinelCustomProperties.java
@@ -1,4 +1,4 @@
-package org.dromara.common.sentinel.config.properties;
+package org.dromara.common.sentinel.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/ruoyi-common/ruoyi-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 8b137891..68693d42 100644
--- a/ruoyi-common/ruoyi-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-common/ruoyi-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1 +1 @@
-
+org.dromara.common.sentinel.config.SentinelCustomAutoConfiguration