mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-07 01:18:33 +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;
|
package org.dromara.sms4j.core.load;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import org.dromara.sms4j.api.SmsBlend;
|
import org.dromara.sms4j.api.SmsBlend;
|
||||||
import org.dromara.sms4j.api.universal.SupplierConfig;
|
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.base.BaseProviderFactory;
|
||||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||||
|
|
||||||
@ -16,6 +14,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* SmsLoad
|
* SmsLoad
|
||||||
* <p> 自定义的一个平滑加权负载服务,可以用于存放多个短信实现负载
|
* <p> 自定义的一个平滑加权负载服务,可以用于存放多个短信实现负载
|
||||||
|
*
|
||||||
* @author :Wind
|
* @author :Wind
|
||||||
* 2023/4/21 20:49
|
* 2023/4/21 20:49
|
||||||
**/
|
**/
|
||||||
@ -39,6 +38,7 @@ public class SmsLoad {
|
|||||||
* addLoadServer
|
* addLoadServer
|
||||||
* <p> 添加服务及其权重
|
* <p> 添加服务及其权重
|
||||||
* <p>添加权重应注意,不要把某个权重设置的与其他权重相差过大,否则容易出现无法负载,单一选择的情况
|
* <p>添加权重应注意,不要把某个权重设置的与其他权重相差过大,否则容易出现无法负载,单一选择的情况
|
||||||
|
*
|
||||||
* @param LoadServer 短信实现
|
* @param LoadServer 短信实现
|
||||||
* @param weight 权重
|
* @param weight 权重
|
||||||
* @author :Wind
|
* @author :Wind
|
||||||
@ -50,6 +50,7 @@ public class SmsLoad {
|
|||||||
/**
|
/**
|
||||||
* removeLoadServer
|
* removeLoadServer
|
||||||
* <p>移除短信服务
|
* <p>移除短信服务
|
||||||
|
*
|
||||||
* @param LoadServer 要移除的服务
|
* @param LoadServer 要移除的服务
|
||||||
* @author :Wind
|
* @author :Wind
|
||||||
*/
|
*/
|
||||||
@ -65,6 +66,7 @@ public class SmsLoad {
|
|||||||
/**
|
/**
|
||||||
* getLoadServer
|
* getLoadServer
|
||||||
* <p>根据负载算法获取一个可获取到的短信服务,这里获取到的服务必然是addLoadServer方法中添加过的服务,不会凭空出现
|
* <p>根据负载算法获取一个可获取到的短信服务,这里获取到的服务必然是addLoadServer方法中添加过的服务,不会凭空出现
|
||||||
|
*
|
||||||
* @return SmsBlend 短信实现
|
* @return SmsBlend 短信实现
|
||||||
* @author :Wind
|
* @author :Wind
|
||||||
*/
|
*/
|
||||||
@ -93,17 +95,20 @@ public class SmsLoad {
|
|||||||
/**
|
/**
|
||||||
* starConfig
|
* starConfig
|
||||||
* <p> 创建smsBlend并加入到负载均衡器
|
* <p> 创建smsBlend并加入到负载均衡器
|
||||||
|
*
|
||||||
* @param supplierConfig 厂商配置
|
* @param supplierConfig 厂商配置
|
||||||
* @param supplierType 厂商枚举
|
* @param supplierType 厂商枚举
|
||||||
* @author :Wind
|
* @author :Wind
|
||||||
*/
|
*/
|
||||||
public static void starConfig(SupplierConfig supplierConfig, SupplierType supplierType){
|
public static void starConfig(SupplierConfig supplierConfig, SupplierType supplierType) {
|
||||||
BaseProviderFactory providerFactory = supplierType.getProviderFactory();
|
BaseProviderFactory providerFactory = supplierType.getProviderFactory();
|
||||||
SmsBlend smsBlend = providerFactory.createMultitonSms(supplierConfig);
|
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;
|
return smsLoad;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user