定时任务的代码:import com.google.gson.Gson;
import com.jianke.bid.common.SMSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** 定时器*/
@Component
@Lazy(value=false)
public class TaskService {@Autowiredprivate Gson gson;/***@Description*/@Scheduled( cron = "0 0 * * * ?")//网上有cron表达式在线生成器,可定义执行的时间public void sendSMSMsgTask() {System.out.println("定时任务执行开始-----------"+ DateFormatUtils.toDateDoDateFormat(new Date()));//获取短信模版String messageTemplate = "XXXX";//发送的手机String phoneNum = "135XXXXXXXX";//短信模版里需要展示的内容Map<String, String> paramsMap = new HashMap<>();DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");//发布时间paramsMap.put("publishtime", "XXXX-XX-XX");paramsMap.put("name", "XXX");paramsMap.put("num", "XXX");SMSUtils.SendSMS(phoneNum , messageTemplate, gson.toJson(paramsMap) );System.out.println("定时任务执行完成-----------"+DateFormatUtils.toDateDoDateFormat(new Date()));}
}

SMSUtils工具代码:

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class SMSUtils {/*** 发送短信* 功能描述:<br/>* @param phoneNumber* @param templateCode* @param paramString* @return 短信内容*/@SuppressWarnings("unused")public static int SendSMS(String phoneNumber,String templateCode,String paramString){// 设置超时时间-可自行调整System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");// 初始化ascClient需要的几个参数final String product = "Dysmsapi";// 短信API产品名称(短信产品名固定,无需修改)final String domain = "dysmsapi.aliyuncs.com";// 短信API产品域名(接口地址固定,无需修改)// 替换成你的AKfinal String accessKeyId = "XXXXXX";// 你的accessKeyIdfinal String accessKeySecret = "XXXXXX";// 你的accessKeySecret// 初始化ascClient,暂时不支持多region(请勿修改)IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);try {DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);} catch (ClientException e1) {e1.printStackTrace();}IAcsClient acsClient = new DefaultAcsClient(profile);// 组装请求对象SendSmsRequest request = new SendSmsRequest();// 使用post提交request.setMethod(MethodType.POST);// 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式request.setPhoneNumbers(phoneNumber);// 必填:短信签名-可在短信控制台中找到request.setSignName("XXXXXX");// 必填:短信模板-可在短信控制台中找到request.setTemplateCode(templateCode);// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为// 友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败// request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");request.setTemplateParam(paramString);// 可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)// request.setSmsUpExtendCode("90997");// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者// request.setOutId("yourOutId");// 请求失败这里会抛ClientException异常SendSmsResponse sendSmsResponse;try {sendSmsResponse = acsClient.getAcsResponse(request);if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {// 请求成功return 0;}} catch (ClientException e) {e.printStackTrace();}// 获取返回结果return 1;}

springboot 启动定时器代码:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;//spring 自带定时器/*** 应用模块名称** @author Administrator*/
@SpringBootApplication
@EnableScheduling
@ComponentScan("your project")
public class XxxWebApplication extends SpringBootServletInitializer {private static final Logger LOGGER = LoggerFactory.getLogger(XxxWebApplication.class);public static void main(String[] args) {LOGGER.info("正在启动用户中心服务......");SpringApplication.run(XxxWebApplication.class, args);// todo 检查相关配置是否完整LOGGER.info("服务已启动完成......");}@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(XXXWebApplication.class);}}

阿里云API定时发送短信(小记)相关推荐

  1. 阿里云接口实现发送短信验证码

    java 阿里云接口实现发送短信验证码 1. 阿里云后台配置短信相关 1.1 开通短信服务 1.2 添加模板签名 1.3 创建秘钥 1.4 短信需要后台授权--注意点 2 java--简单实现短信验证 ...

  2. 基于MFC与阿里云制作简易发送短信

    ***~~ 做到最后可能会只是不能识别汉字,但是能识别英文和数字,有待改进的地方` ` ~~ *** # 详细步骤见如下 一. 新建一个MFC项目:打开VS2013,文件->新建->项目 ...

  3. 使用阿里云短信通知服务发送短信--工具类

    public class AliyunUtils {public static boolean sendSMS(String mobilephone,Integer status) throws Se ...

  4. springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)

    一.开通阿里云短信服务 开通步骤如下图所示 开通完成后,进入阿里云短信验证首页,点击国内消息 一般来说,在短信验证时需要签名管理和模板管理,但是签名管理需要备案或者上线服务,所以对于没有备案和上线应用 ...

  5. java 阿里云接口实现发送短信验证码

    1.先去阿里云开通短信服务: 2.添加模板及签名:需要审核,个人账户审核就几分钟就OK 先解释一下模板及签名: 标准参照:https://help.aliyun.com/document_detail ...

  6. Yii2 + 阿里云 后台配置发送短信

    1.登录阿里云账号之后 首先鼠标移动到你的头像上 点击AccessKey之后 创建 2.找到短信服务这里 申请签名 和 模板 3.登录yii2框架后台 填写上相对应的信息. 4.在控制器中: publ ...

  7. springMVC+阿里云API = 实现发送手机验证码短信

    springMVC+阿里云API = 实现发送手机验证码短信 前段时间vue框架做了一个旅游APP软件,其中在用户登录APP的时候,我不仅提供了用户可以自己手动先去注册账号在进行登陆App.然后我还提 ...

  8. 延迟发送:4款定时发送短信的应用程序

    发送短信已经成为朋友.家人甚至是同事之间最为常见的通讯方式之一.由于短信具备定时发送及发送报告等功能,使用起来非常灵活.当然,短信的应用程序中常常默认带有发送报告功能,而没有定时发送的功能,若是能具备 ...

  9. Spring Boot定时发送短信

    Spring Boot定时发送短信的两种方式 不少项目中估计都有遇到定时发送这个梗,我也遇到了,页面中下拉框选项有立即发送以及定时发送,立即发送就不用说了,定时发送可以讲一下,定时的方式有很多种,Ja ...

最新文章

  1. [转]使用C#调用金诚信71x系列读卡器的DLL
  2. 【机器学习基础】一文归纳AI数据增强之法
  3. 团队-科学技术器-模块测试过程
  4. No ExecutorFactory found to execute the application.
  5. 查看ios设备型号网址
  6. wstring和string简单正则表达式使用
  7. 【屏幕保护】GIS相关的屏幕保护【什么是GIS】
  8. 使用GDAL打开裸数据(RAW)
  9. 33.MySQL高可用架构
  10. Postman 汉化(Postman中文版)
  11. [4G5G专题-8]:RRU 峰均比降低技术CFR(波峰系数削减)
  12. 静态路由(也许是目前最全的)
  13. threejs使用tweenjs实现点击标签过渡到相应视角
  14. html图片轮播放大,jquery+CSS3实现轮播图、js实现轮播图片自适应等比显示、图片旋转、图片拖拽、鼠标滚动放大缩小...
  15. 开源游戏服务器框架NoahGameFrame(NF)服务器端环境搭建(二)
  16. 前端开发毕业设计如何选题?怎么做?
  17. 【git生成私钥】git@gitlab.dfc.com: Permission denied (publickey).问题解决
  18. 关于yii2 treemanager插件中lft和rgt的说明
  19. Android自定义View(一)
  20. 2015-4-23 bav总结

热门文章

  1. 麦芒3卡在android界面,4G华为麦芒3体验:一体化金属机身
  2. javascript字符串代码在前端的美化、格式化展示处理
  3. 九华山《高僧传奇(上)》
  4. 【20保研】上海交通大学“2019软件学院优才夏令营”暨“2020级研究生优秀生源选拔”的通知...
  5. flagSet 使用
  6. (转)ntelliJ IDEA 15 激活码(破解)
  7. 批量查询韵达快递单号物流信息的教学分享
  8. 武汉速达软件测试培训,水运工工程水深测量培训_WGZ.ppt
  9. JSP SSM加班管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  10. Ubuntu 中 Pycharm 添加启动图标(桌面快捷方式)