☂️基础配置
大约 4 分钟
在3.0中,配置内容和配置方式相较之前版本有所变动,以下为配置的内容
SmsConfig配置
SmsConfig绝大部分为非必须配置,依照自己需求进行修改即可
字段名 | yml名称 | 类型 | 默认值 | 作用 |
configType | config-type | ConfigType枚举 | ConfigType.YAML | 配置源类型用于标定配置来源 |
restricted | restricted | Boolean | false | 用于标定yml中的配置是否开启短信拦截,接口配置不受此限制 |
accountMax | account-max | Integer | 0 | 短信拦截限制单手机号每日最大发送量,只对开启了拦截的配置有效 |
minuteMax | minute-max | Integer | 0 | 短信拦截限制单手机号每分钟最大发送,只对开启了拦截的配置有效 |
corePoolSize | core-pool-size | Integer | 10 | 核心线程池大小,主要用于异步短信线程池 |
maxPoolSize | max-pool-size | Integer | 30 | 核心线程池最大线程数,主要用于异步短信线程池 |
queueCapacity | queue-capacity | Integer | 50 | 核心线程池队列容量,主要用于异步短信线程池 |
shutdownStrategy | shutdown-strategy | Boolean | true | 设置线程池关闭的时候等待所有任务都完成再继续销毁其他的Bean |
HttpLog | Http-log | Boolean | false | 是否打印http log |
isPrint | is-print | Boolean | true | 是否打印banner |
blends | blends | Map | null | 短信厂商核心配置容纳,详细请看厂商配置解析 |
缓存配置
缓存在框架中主要用于短信重试和拦截的临时性缓存。
sms4j 3.0中有基于内存实现的缓存系统,但是此缓存并没有持久化能力,如果你想使用自己的缓存系统或者自己实现缓存,sms4j框架也预留了相应的接口
位置及名称:
org.dromara.sms4j.api.dao.SmsDao
接口详情:
public interface SmsDao {
/**
* 存储
*
* @param key 键
* @param value 值
* @param cacheTime 缓存时间(单位:秒)
*/
void set(String key, Object value, long cacheTime);
/**
* 存储
*
* @param key 键
* @param value 值
*/
void set(String key, Object value);
/**
* 读取
*
* @param key 键
* @return 值
*/
Object get(String key);
/**
* 清空
*/
void clean();
}
黑名单配置
为了统一SMS4J的使用入口,使用SmsBlend对象操作黑名单
class Test{
void testBlackList(){
String PHONE = "1XXAAAABBBB";
SmsBlend smsBlend = SmsFactory.getBySupplier(SupplierConstant.任意);
//单黑名单添加
smsBlend.joinInBlacklist(PHONE);
//单黑名单移除
smsBlend.removeFromBlacklist(PHONE);
//批量黑名单添加
smsBlend.batchJoinBlacklist(Collections.singletonList(PHONE));
//批量黑名单移除
smsBlend.batchRemovalFromBlacklist(Collections.singletonList(PHONE));
}
}
注意
你需要知道:黑名单是存放于SmsDao中的,默认是Java的Map,一旦重启便被释放,如需保存需要有持久化的机制,推荐自行实现SmsDao