From 7865f5210ed217d969c56791bbb498f116ddfa72 Mon Sep 17 00:00:00 2001 From: Shenlijun Date: Tue, 30 Jun 2026 20:47:19 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=9D=A1=E4=BB=B6=E5=8C=96=20SmsAutoC?= =?UTF-8?q?onfiguration=20=E7=9A=84=20SmsDao/=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=99=A8=20Bean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/test/SmsPropertiesTest.java | 26 +++++++++++++++++++ .../sms/config/SmsAutoConfiguration.java | 3 +++ 2 files changed, 29 insertions(+) diff --git a/ruoyi-admin/src/test/java/org/dromara/test/SmsPropertiesTest.java b/ruoyi-admin/src/test/java/org/dromara/test/SmsPropertiesTest.java index 52f63b5a4..0c5c51ee1 100644 --- a/ruoyi-admin/src/test/java/org/dromara/test/SmsPropertiesTest.java +++ b/ruoyi-admin/src/test/java/org/dromara/test/SmsPropertiesTest.java @@ -2,6 +2,8 @@ package org.dromara.test; import org.dromara.common.sms.config.SmsAutoConfiguration; import org.dromara.common.sms.config.properties.SmsProperties; +import org.dromara.common.sms.handler.SmsExceptionHandler; +import org.dromara.sms4j.api.dao.SmsDao; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -43,4 +45,28 @@ public class SmsPropertiesTest { assertThat(context.getBean(SmsProperties.class).getEnabled()).isEqualTo(true); }); } + + @Tag("dev") + @DisplayName("sms.enabled=false 时不创建 PlusSmsDao / SmsExceptionHandler") + @Test + public void shouldNotCreateSmsBeansWhenDisabled() { + contextRunner + .withPropertyValues("sms.enabled=false") + .run(context -> { + assertThat(context).doesNotHaveBean(SmsDao.class); + assertThat(context).doesNotHaveBean(SmsExceptionHandler.class); + }); + } + + @Tag("dev") + @DisplayName("sms.enabled=true 时创建 PlusSmsDao / SmsExceptionHandler") + @Test + public void shouldCreateSmsBeansWhenEnabled() { + contextRunner + .withPropertyValues("sms.enabled=true") + .run(context -> { + assertThat(context).hasSingleBean(SmsDao.class); + assertThat(context).hasSingleBean(SmsExceptionHandler.class); + }); + } } diff --git a/ruoyi-common/ruoyi-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java b/ruoyi-common/ruoyi-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java index ba9f578b3..d125b5cd2 100644 --- a/ruoyi-common/ruoyi-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java +++ b/ruoyi-common/ruoyi-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java @@ -5,6 +5,7 @@ import org.dromara.common.sms.core.dao.PlusSmsDao; import org.dromara.common.sms.handler.SmsExceptionHandler; import org.dromara.sms4j.api.dao.SmsDao; import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -21,6 +22,7 @@ public class SmsAutoConfiguration { @Primary @Bean + @ConditionalOnProperty(prefix = "sms", name = "enabled", havingValue = "true") public SmsDao smsDao() { return new PlusSmsDao(); } @@ -29,6 +31,7 @@ public class SmsAutoConfiguration { * 异常处理器 */ @Bean + @ConditionalOnProperty(prefix = "sms", name = "enabled", havingValue = "true") public SmsExceptionHandler smsExceptionHandler() { return new SmsExceptionHandler(); }