手动通过接口获取配置信息

This commit is contained in:
wind 2023-08-16 21:11:51 +08:00
parent 3f772b070f
commit e7cbf70fdd
4 changed files with 46 additions and 14 deletions

View File

@ -33,6 +33,7 @@ public class MailFactory{
}
}
/**
* createMailClient
* <p>从工厂获取一个邮件发送实例,该实例发送短信将依照黑名单中的数据进行过滤

View File

@ -16,10 +16,11 @@ public interface SmsReadConfig {
/**
* getSupplierConfig
* <p> 获取一个厂商的配置
* <p> 通过配置ID获取一个厂商的配置
* @param configId 配置id
* @author :Wind
*/
BaseConfig getSupplierConfig();
BaseConfig getSupplierConfig(String configId);
/**
* getSupplierConfigList

View File

@ -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
* <p>通过配置读取接口创建某个短信实例
* <p>该方法创建的短信实例将会交给框架进行托管后续可以通过getSmsBlend获取
* <p>该方法会直接调用接口实现
* @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
* <p>通过配置读取接口创建全部短信实例
* <p>该方法创建的短信实例将会交给框架进行托管后续可以通过getSmsBlend获取
* <p>该方法会直接调用接口实现
* @param smsReadConfig 读取额外配置接口
* @author :Wind
*/
public static void createSmsBlend(SmsReadConfig smsReadConfig){
List<BaseConfig> supplierConfigList = smsReadConfig.getSupplierConfigList();
supplierConfigList.forEach(f->{
register(create(f));
});
}
private static SmsBlend create(SupplierConfig config) {
BaseProviderFactory factory = ProviderFactoryHolder.requireForSupplier(config.getSupplier());
if (factory == null) {

View File

@ -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);
}
}