修复自定义配置下报错的bug

This commit is contained in:
wind 2023-05-06 19:19:00 +08:00
parent 6a04b9eb09
commit 3e10e0251f

View File

@ -1,13 +1,13 @@
package org.dromara.sms4j.core.factory;
import org.dromara.sms4j.core.SupplierSqlConfig;
import org.dromara.sms4j.emay.config.EmaySmsConfig;
import org.dromara.sms4j.aliyun.config.AlibabaSmsConfig;
import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.cloopen.config.CloopenSmsConfig;
import org.dromara.sms4j.comm.enumerate.SupplierType;
import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.core.SupplierSqlConfig;
import org.dromara.sms4j.core.config.SupplierFactory;
import org.dromara.sms4j.emay.config.EmaySmsConfig;
import org.dromara.sms4j.huawei.config.HuaweiSmsConfig;
import org.dromara.sms4j.jdcloud.config.JdCloudSmsConfig;
import org.dromara.sms4j.tencent.config.TencentSmsConfig;
@ -18,6 +18,7 @@ import org.dromara.sms4j.unisms.config.UniSmsConfig;
* <p>构造工厂用于获取一个厂商的短信实现对象
* 在调用对应厂商的短信发送方法前请先确保你的配置已经实现否则无法发送该厂商对应的短信一般情况下厂商会回执因缺少的配置所造成的的异常但不会
* 以java异常的形式抛出
*
* @author :Wind
* 2023/4/8 15:55
**/
@ -28,6 +29,7 @@ public abstract class SmsFactory {
/**
* createSmsBlend
* <p>获取各个厂商的实现类
*
* @param supplierType 厂商枚举
* @author :Wind
*/
@ -52,12 +54,13 @@ public abstract class SmsFactory {
}
/**
* refresh
* refresh
* <p>刷新配置用于切换配置后的刷新防止因厂商sdk内部的保存导致配置更新不及时
* 此方法会造成一定的性能损失不建议经常性调用
*
* @author :Wind
*/
public static void refresh(){
*/
public static void refresh() {
AlibabaSmsConfig.refresh(SupplierFactory.getAlibabaConfig());
HuaweiSmsConfig.refresh(SupplierFactory.getHuaweiConfig());
UniSmsConfig.refresh(SupplierFactory.getUniConfig());
@ -68,36 +71,46 @@ public abstract class SmsFactory {
}
/**
* refresh
* refresh
* <p>根据厂商类型枚举刷新对应厂商的配置此方法不会刷新全部厂商的配置对象只会重构所选厂商的对象性能损失相对较小
*
* @param supplierType 厂商类型枚举
* @author :Wind
*/
public static void refresh(SupplierType supplierType){
*/
public static void refresh(SupplierType supplierType) {
switch (supplierType) {
case ALIBABA:
AlibabaSmsConfig.refresh(SupplierFactory.getAlibabaConfig());
AlibabaSmsConfig.refresh(SupplierFactory.getAlibabaConfig());
break;
case HUAWEI:
HuaweiSmsConfig.refresh(SupplierFactory.getHuaweiConfig());
HuaweiSmsConfig.refresh(SupplierFactory.getHuaweiConfig());
break;
case UNI_SMS:
UniSmsConfig.refresh(SupplierFactory.getUniConfig());
UniSmsConfig.refresh(SupplierFactory.getUniConfig());
break;
case TENCENT:
TencentSmsConfig.refresh(SupplierFactory.getTencentConfig());
TencentSmsConfig.refresh(SupplierFactory.getTencentConfig());
break;
case JD_CLOUD:
JdCloudSmsConfig.refresh(SupplierFactory.getJdCloudConfig());
JdCloudSmsConfig.refresh(SupplierFactory.getJdCloudConfig());
break;
case CLOOPEN:
CloopenSmsConfig.refresh(SupplierFactory.getCloopenConfig());
CloopenSmsConfig.refresh(SupplierFactory.getCloopenConfig());
break;
case EMAY:
EmaySmsConfig.refresh(SupplierFactory.getEmayConfig());
EmaySmsConfig.refresh(SupplierFactory.getEmayConfig());
break;
}
throw new SmsBlendException("An attempt to construct a SmsBlend object failed. Please check that the enumeration is valid");
}
/**
* refreshSqlConfig
* refreshSqlConfig
* <p>重新读取sql配置
*
* @author :Wind
*/
*/
public static void refreshSqlConfig() {
SupplierSqlConfig.refreshSqlConfig();
}