SpringBoot整合阿里云短信服务的方法
目录
- 一、新建短信微服务
- 1、在service模块下创建子模块service-msm
- 3.配置application.properties
- 4、创建启动类
- 二、阿里云短信服务
- 三、编写发送短信接口
- 1.在service-msm的pom中引入依赖
- 2.编写controller,根据手机号发送短信
- 3.编写service
一、新建短信微服务
1、在service模块下创建子模块service-msm
2.创建controller和service代码
3.配置application.properties
# 服务端口server.port=8006# 服务名spring.application.name=service-msm# mysql数据库连接spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8spring.datasource.username=rootspring.datasource.password=rootspring.redis.host=192.168.44.131spring.redis.port=6379spring.redis.database= 0spring.redis.timeout=1800000spring.redis.lettuce.pool.max-active=20spring.redis.lettuce.pool.max-wait=-1#最大阻塞等待时间(负数表示没限制)spring.redis.lettuce.pool.max-idle=5spring.redis.lettuce.pool.min-idle=0#最小空闲#返回json的全局时间格式spring.jackson.date-format=yyyy-MM-dd HH:mm:ssspring.jackson.time-zone=GMT+8#配置mapper xml文件的路径mybatis-plus.mapper-locations=classpath:com/atguigu/cmsservice/mapper/xml/*.xml#mybatis日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
4、创建启动类
@ComponentScan({"com.south"})@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置public class ServiceMsmApplication { public static void main(String[] args) {SpringApplication.run(ServiceMsmApplication.class, args); }}
二、阿里云短信服务 帮助文档:
https://help.aliyun.com/product/44282.html?spm=5176.10629532.0.0.38311cbeYzBm73
三、编写发送短信接口
1.在service-msm的pom中引入依赖
com.alibaba fastjsoncom.aliyun aliyun-java-sdk-core
2.编写controller,根据手机号发送短信
@CrossOrigin //跨域public class MsmApiController {@Autowiredprivate MsmService msmService; @Autowiredprivate RedisTemplate redisTemplate; @GetMapping(value = "https://www.it610.com/send/{phone}")public R code(@PathVariable String phone) {String code = redisTemplate.opsForValue().get(phone); if(!StringUtils.isEmpty(code)) return R.ok(); code = RandomUtil.getFourBitRandom(); Map param = new HashMap<>(); param.put("code", code); boolean isSend = msmService.send(phone, "SMS_180051135", param); if(isSend) {redisTemplate.opsForValue().set(phone, code,5,TimeUnit.MINUTES); return R.ok(); } else {return R.error().message("发送短信失败"); }}}
3.编写service
@Servicepublic class MsmServiceImpl implements MsmService {/*** 发送短信*/public boolean send(String PhoneNumbers, String templateCode, Map param) {if(StringUtils.isEmpty(PhoneNumbers)) return false; DefaultProfile profile =DefaultProfile.getProfile("default", "LTAIq6nIPY09VROj", "FQ7UcixT9wEqMv9F35nORPqKr8XkTF"); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); //request.setProtocol(ProtocolType.HTTPS); request.setMethod(MethodType.POST); request.setDomain("dysmsapi.aliyuncs.com"); request.setVersion("2017-05-25"); request.setAction("SendSms"); request.putQueryParameter("PhoneNumbers", PhoneNumbers); request.putQueryParameter("SignName", "我的谷粒在线教育网站"); request.putQueryParameter("TemplateCode", templateCode); request.putQueryParameter("TemplateParam", JSONObject.toJSONString(param)); try {CommonResponse response = client.getCommonResponse(request); System.out.println(response.getData()); return response.getHttpResponse().isSuccess(); } catch (ServerException e) {e.printStackTrace(); } catch (ClientException e) {e.printStackTrace(); }return false; }}
【SpringBoot整合阿里云短信服务的方法】到此这篇关于SpringBoot整合阿里云短信服务的文章就介绍到这了,更多相关SpringBoot阿里云短信服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Spring|Spring Boot 整合 Activiti6.0.0
- springboot使用redis缓存
- springboot整合数据库连接池-->druid
- CentOS7 阿里云镜像配置方法
- SpringBoot中YAML语法及几个注意点说明
- 如何在阿里云linux上部署java项目
- springboot结合redis实现搜索栏热搜功能及文字过滤