diff --git a/sms4j-Email-plugin/sms4j-Email-core/src/main/java/org/dromara/email/core/factory/MailFactory.java b/sms4j-Email-plugin/sms4j-Email-core/src/main/java/org/dromara/email/core/factory/MailFactory.java index 86fef6aa..f76a8b0b 100644 --- a/sms4j-Email-plugin/sms4j-Email-core/src/main/java/org/dromara/email/core/factory/MailFactory.java +++ b/sms4j-Email-plugin/sms4j-Email-core/src/main/java/org/dromara/email/core/factory/MailFactory.java @@ -33,6 +33,7 @@ public class MailFactory{ } } + /** * createMailClient *

从工厂获取一个邮件发送实例,该实例发送短信将依照黑名单中的数据进行过滤 diff --git a/sms4j-core/src/main/java/org/dromara/sms4j/core/datainterface/SmsReadConfig.java b/sms4j-core/src/main/java/org/dromara/sms4j/core/datainterface/SmsReadConfig.java index 1f404f47..3068f237 100644 --- a/sms4j-core/src/main/java/org/dromara/sms4j/core/datainterface/SmsReadConfig.java +++ b/sms4j-core/src/main/java/org/dromara/sms4j/core/datainterface/SmsReadConfig.java @@ -16,10 +16,11 @@ public interface SmsReadConfig { /** * getSupplierConfig - *

获取一个厂商的配置 + *

通过配置ID获取一个厂商的配置 + * @param configId 配置id * @author :Wind */ - BaseConfig getSupplierConfig(); + BaseConfig getSupplierConfig(String configId); /** * getSupplierConfigList diff --git a/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java b/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java index 40512351..1a5f0ebd 100644 --- a/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java +++ b/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java @@ -6,7 +6,9 @@ import org.dromara.sms4j.api.smsProxy.SmsInvocationHandler; import org.dromara.sms4j.api.universal.SupplierConfig; import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.factory.BeanFactory; +import org.dromara.sms4j.core.datainterface.SmsReadConfig; import org.dromara.sms4j.core.load.SmsLoad; +import org.dromara.sms4j.provider.config.BaseConfig; import org.dromara.sms4j.provider.factory.BaseProviderFactory; import org.dromara.sms4j.provider.factory.ProviderFactoryHolder; @@ -68,6 +70,36 @@ public abstract class SmsFactory { SmsLoad.starConfig(sms, config); } + /** + * createSmsBlend + *

通过配置读取接口创建某个短信实例 + *

该方法创建的短信实例将会交给框架进行托管,后续可以通过getSmsBlend获取 + *

该方法会直接调用接口实现 + * @param smsReadConfig 读取额外配置接口 + * @param configId 配置ID + * @author :Wind + */ + public static void createSmsBlend(SmsReadConfig smsReadConfig,String configId){ + BaseConfig supplierConfig = smsReadConfig.getSupplierConfig(configId); + SmsBlend smsBlend = create(supplierConfig); + register(smsBlend); + } + + /** + * createSmsBlend + *

通过配置读取接口创建全部短信实例 + *

该方法创建的短信实例将会交给框架进行托管,后续可以通过getSmsBlend获取 + *

该方法会直接调用接口实现 + * @param smsReadConfig 读取额外配置接口 + * @author :Wind + */ + public static void createSmsBlend(SmsReadConfig smsReadConfig){ + List supplierConfigList = smsReadConfig.getSupplierConfigList(); + supplierConfigList.forEach(f->{ + register(create(f)); + }); + } + private static SmsBlend create(SupplierConfig config) { BaseProviderFactory factory = ProviderFactoryHolder.requireForSupplier(config.getSupplier()); if (factory == null) { diff --git a/sms4j-solon-plugin/src/test/java/org/dromara/sms4j/test/Sms4jTest.java b/sms4j-solon-plugin/src/test/java/org/dromara/sms4j/test/Sms4jTest.java index d4e056cc..d9aca00e 100644 --- a/sms4j-solon-plugin/src/test/java/org/dromara/sms4j/test/Sms4jTest.java +++ b/sms4j-solon-plugin/src/test/java/org/dromara/sms4j/test/Sms4jTest.java @@ -1,9 +1,7 @@ package org.dromara.sms4j.test; import org.dromara.sms4j.api.entity.SmsResponse; -import org.dromara.sms4j.core.config.SupplierFactory; import org.dromara.sms4j.core.factory.SmsFactory; -import org.dromara.sms4j.provider.enumerate.SupplierType; import org.dromara.sms4j.unisms.config.UniConfig; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; @@ -16,15 +14,15 @@ public class Sms4jTest { @Test public void uniSmsTest() { - UniConfig build = UniConfig.builder() - .signature("***") - .accessKeyId("7Cr1***VJQ11Ap4***Mo7xmFg") - .templateId("2001") - .templateName("message") - .isSimple(true) - .build(); - SupplierFactory.setUniConfig(build); - SmsResponse smsResponse = SmsFactory.createSmsBlend(SupplierType.UNI_SMS).sendMessage("175***65952", "123123"); - System.out.println(smsResponse); +// UniConfig build = UniConfig.builder() +// .signature("***") +// .accessKeyId("7Cr1***VJQ11Ap4***Mo7xmFg") +// .templateId("2001") +// .templateName("message") +// .isSimple(true) +// .build(); +// SupplierFactory.setUniConfig(build); +// SmsResponse smsResponse = SmsFactory.createSmsBlend(SupplierType.UNI_SMS).sendMessage("175***65952", "123123"); +// System.out.println(smsResponse); } }