添加对象刷新方法,用于切换配置后的对象刷新

This commit is contained in:
wind 2023-04-12 22:50:34 +08:00
parent 8ca6106630
commit d066cda065
2 changed files with 83 additions and 3 deletions

View File

@ -0,0 +1,38 @@
{
"hash": "2b79d460",
"browserHash": "bbb5b341",
"optimized": {
"@vueuse/core": {
"src": "../../../../node_modules/@vueuse/core/index.mjs",
"file": "@vueuse_core.js",
"fileHash": "49add9e9",
"needsInterop": false
},
"@vuepress/shared": {
"src": "../../../../node_modules/@vuepress/shared/dist/index.js",
"file": "@vuepress_shared.js",
"fileHash": "30dbdfc5",
"needsInterop": false
},
"vue": {
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "0859a21c",
"needsInterop": false
},
"vue-router": {
"src": "../../../../node_modules/vue-router/dist/vue-router.esm-bundler.js",
"file": "vue-router.js",
"fileHash": "3d5d324e",
"needsInterop": false
}
},
"chunks": {
"chunk-AWA6B2ZS": {
"file": "chunk-AWA6B2ZS.js"
},
"chunk-JXWQMH7G": {
"file": "chunk-JXWQMH7G.js"
}
}
}

View File

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