☂️基础配置
2023/9/5大约 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
