提供短信发送的抽象层,支持多种短信服务提供商。
核心接口
SmsSenderService
短信发送接口,继承 SmsService:
public interface SmsSenderService extends SmsService {
SmsSenderVo send(SmsSenderDto request);
}
SmsTemplateService
短信模板接口,继承 SmsService:
public interface SmsTemplateService extends SmsService {
Map<String, String> getTemplate();
}
SmsManager
短信管理器,统一管理多个短信服务提供商:
@Resource
private SmsManager smsManager;
public void sendSms() {
SmsSenderDto dto = SmsSenderDto.builder()
.phoneNumber("13800138000")
.signName("签名")
.templateName("验证码模板")
.templateParams(Map.of("code", "123456"))
.build();
SmsSenderVo result = smsManager.send(dto);
}
SmsSenderDto 字段
字段 |
说明 |
phoneNumber |
接收手机号 |
signName |
短信签名 |
templateName |
短信模板名称 |
templateParams |
模板参数 |
templateCode |
模板代码 |
sendTime |
定时发送时间 |
自定义短信服务
继承 AbstractSmsSenderService,实现具体的短信发送逻辑:
@Component
public class AliyunSmsSenderService extends AbstractSmsSenderService {
@Override
public String getProvider() {
return "aliyun";
}
@Override
public SmsSenderVo send(SmsSenderDto request) {
// 调用阿里云短信API
return SmsSenderVo.builder()
.success(true)
.code("OK")
.message("发送成功")
.build();
}
}