mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 17:08:40 +08:00
移除报错的ReflectUtil更换为hutool的BeanUtil.beanToMap
This commit is contained in:
parent
b8cee6d829
commit
1c2c730f05
@ -1,36 +0,0 @@
|
||||
package org.dromara.sms4j.core;
|
||||
|
||||
import org.dromara.sms4j.api.universal.SupplierConfig;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class ReflectUtil {
|
||||
|
||||
/**
|
||||
* 反射获取接口对象的原类名
|
||||
*/
|
||||
public static String getObjectName(SupplierConfig parameter) {
|
||||
return parameter.getClass().getTypeName();
|
||||
}
|
||||
|
||||
/**
|
||||
* 将对象的属性和属性值变为map
|
||||
* */
|
||||
public static Map<String, String> getValues(SupplierConfig parameter) {
|
||||
try {
|
||||
Map<String ,String> map = new HashMap<>();
|
||||
Class<?> clazz = Class.forName(getObjectName(parameter));
|
||||
Field[] declaredFields = clazz.getDeclaredFields();
|
||||
for (Field declaredField : declaredFields) {
|
||||
declaredField.setAccessible(true);
|
||||
map.put(declaredField.getName(), (String) declaredField.get(parameter));
|
||||
}
|
||||
return map;
|
||||
} catch (Exception e) {
|
||||
throw new SmsBlendException(e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,8 @@
|
||||
package org.dromara.sms4j.core.load;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import org.dromara.sms4j.api.SmsBlend;
|
||||
import org.dromara.sms4j.api.universal.SupplierConfig;
|
||||
import org.dromara.sms4j.comm.config.BaseConfig;
|
||||
import org.dromara.sms4j.core.ReflectUtil;
|
||||
import org.dromara.sms4j.core.config.SupplierFactory;
|
||||
import org.dromara.sms4j.provider.base.BaseProviderFactory;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
|
||||
@ -16,6 +14,7 @@ import java.util.Map;
|
||||
/**
|
||||
* SmsLoad
|
||||
* <p> 自定义的一个平滑加权负载服务,可以用于存放多个短信实现负载
|
||||
*
|
||||
* @author :Wind
|
||||
* 2023/4/21 20:49
|
||||
**/
|
||||
@ -39,6 +38,7 @@ public class SmsLoad {
|
||||
* addLoadServer
|
||||
* <p> 添加服务及其权重
|
||||
* <p>添加权重应注意,不要把某个权重设置的与其他权重相差过大,否则容易出现无法负载,单一选择的情况
|
||||
*
|
||||
* @param LoadServer 短信实现
|
||||
* @param weight 权重
|
||||
* @author :Wind
|
||||
@ -50,6 +50,7 @@ public class SmsLoad {
|
||||
/**
|
||||
* removeLoadServer
|
||||
* <p>移除短信服务
|
||||
*
|
||||
* @param LoadServer 要移除的服务
|
||||
* @author :Wind
|
||||
*/
|
||||
@ -65,6 +66,7 @@ public class SmsLoad {
|
||||
/**
|
||||
* getLoadServer
|
||||
* <p>根据负载算法获取一个可获取到的短信服务,这里获取到的服务必然是addLoadServer方法中添加过的服务,不会凭空出现
|
||||
*
|
||||
* @return SmsBlend 短信实现
|
||||
* @author :Wind
|
||||
*/
|
||||
@ -93,17 +95,20 @@ public class SmsLoad {
|
||||
/**
|
||||
* starConfig
|
||||
* <p> 创建smsBlend并加入到负载均衡器
|
||||
*
|
||||
* @param supplierConfig 厂商配置
|
||||
* @param supplierType 厂商枚举
|
||||
* @author :Wind
|
||||
*/
|
||||
public static void starConfig(SupplierConfig supplierConfig, SupplierType supplierType){
|
||||
public static void starConfig(SupplierConfig supplierConfig, SupplierType supplierType) {
|
||||
BaseProviderFactory providerFactory = supplierType.getProviderFactory();
|
||||
SmsBlend smsBlend = providerFactory.createMultitonSms(supplierConfig);
|
||||
smsLoad.addLoadServer(smsBlend, Integer.parseInt(ReflectUtil.getValues(supplierConfig).get("weight")));
|
||||
Map<String, Object> supplierConfigMap = BeanUtil.beanToMap(supplierConfig);
|
||||
Object weight = supplierConfigMap.getOrDefault("weight", 1);
|
||||
smsLoad.addLoadServer(smsBlend, Integer.parseInt(weight.toString()));
|
||||
}
|
||||
|
||||
public static SmsLoad getBeanLoad(){
|
||||
public static SmsLoad getBeanLoad() {
|
||||
return smsLoad;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user