作者简介:大家好,我是郭嘉烨
个人主页:郭嘉烨
往期链接:Java实现手机短信验证码功能
目录
- 前言
-
- 原代码
- 优化
-
- 添加maven依赖
- 创建config.properties配置文件
- 创建applicationContext.xml配置文件
- 封装工具类
- 测试类
前言
上一篇简单的实现了短信的验证码功能,今天主要对上篇的代码进行优化,这样方便运用到具体的实例当中。原代码
// This file is auto-generated, don't edit it. Thanks.import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.tea.*;
import com.aliyun.dysmsapi20170525.*;
import com.aliyun.dysmsapi20170525.models.*;
import com.aliyun.teaopenapi.*;
import com.aliyun.teaopenapi.models.*;
public class Sample {
public static void main(String[] args_) throws Exception {
Config config = new Config()
//这里修改为我们上面生成自己的AccessKey ID
.setAccessKeyId("LTAI5tLdwwPpCrJbzMdTdQ7")//这里修改为我们上面生成自己的AccessKey Secret
.setAccessKeySecret("jnP9no9KhtsE4kVbqbV40JKCksCqy3");
// 访问的域名
config.endpoint = "dysmsapi.aliyuncs.com";
Client client = new Client(config);
SendSmsRequest sendSmsRequest = new SendSmsRequest()
.setSignName("阿里云短信测试")//短信签名
.setTemplateCode("SMS_154950909")//短信模板
.setPhoneNumbers("157xxxxxxxx")//这里填写接受短信的手机号码
.setTemplateParam("{\"code\":\"1234\"}");
//验证码
// 复制代码运行请自行打印 API 的返回值
client.sendSms(sendSmsRequest);
}
}
优化 添加maven依赖
org.mybatis
mybatis
3.5.9
org.springframework
spring-context
5.1.6.RELEASE
org.springframework
spring-jdbc
5.1.6.RELEASE
com.aliyun
dysmsapi20170525
2.0.9
junit
junit
4.12
>test
org.springframework
spring-test
5.1.6.RELEASE
com.aliyun.oss
aliyun-sdk-oss
3.10.2
创建config.properties配置文件
在原代码中,我们用到的AccessKey ID、AccessKey Secret、域名。短信签名以及短信模板都是固定不变的,因此我们可以将它们拿出来放到一个配置文件中。
#aliyun短信配置参数
aliyun.accessKeyId=LTAI5tLdwwPpCrJbzMdTdQ7w
aliyun.accessKeySecret=jnP9no9KhtsE4kVbqbV40JKCksCqy2
aliyun.endpoint=dysmsapi.aliyuncs.com
aliyun.signName=阿里云短信测试
aliyun.templateCode=SMS_154950909
创建applicationContext.xml配置文件
在配置文件中配置注解自动扫描,以及加载外部配置文件
封装工具类
package com.it.sms;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.dysmsapi20170525.models.SendSmsResponseBody;
import com.aliyun.teaopenapi.models.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component//创建当前类的对象
public class MessageTemplate {@Value("${aliyun.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.accessKeySecret}")
private String accessKeySecret;
@Value("${aliyun.endpoint}")
private String endpoint;
@Value("${aliyun.signName}")
private String signName;
@Value("${aliyun.templateCode}")
private String templateCode;
public void sendMessage(String phone,String code) throws Exception {
Config config = new Config()
// 您的AccessKey ID
.setAccessKeyId(accessKeyId)
// 您的AccessKey Secret
.setAccessKeySecret(accessKeySecret);
// 访问的域名
config.endpoint = endpoint;
Client client = new Client(config);
SendSmsRequest sendSmsRequest = new SendSmsRequest()
.setSignName(signName)
.setTemplateCode(templateCode)
.setPhoneNumbers(phone)
.setTemplateParam("{\"code\":\""+code+"\"}");
// 复制代码运行请自行打印 API 的返回值
SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
SendSmsResponseBody body = sendSmsResponse.getBody();
System.out.println("短信发送结果:"+body.toString());
//打印结果
}
}
测试类
package com.it.sms;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.*;
//spring整合单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class MessageTemplateTest {@Autowired
private MessageTemplate messageTemplate;
@Test
public void sendMessage() {try {
messageTemplate.sendMessage("17809523930","1024");
} catch (Exception e) {
e.printStackTrace();
}
}
}
【Java|Java实现短信验证码】? 原 创 不 易 , 还 希 望 各 位 大 佬 支 持 一 下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下
点 赞 , 你 的 认 可 是 我 创 作 的 动 力 ! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!
??收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 ! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!
??评 论 , 你 的 意 见 是 我 进 步 的 财 富 ! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!
推荐阅读
- 进阶之路|大聪明教你学Java | 面试官(请你说说 Redis 为什么这么快())
- 程序人生|关于程序员35岁的坎(年龄不是挡板,当你匹配了这个年纪该有的能力还有什么畏惧!)
- Java全家桶
- java|动态规划刷题攻略(二)
- java|动态规划入门攻略(一)
- 1024程序员节|暴力匹配算法和KMP算法解决字符串匹配问题
- java|java多线程学习万字长文总结
- Java|Java 多线程 万字最详解
- java多线程|万字梳理java多线程的基础知识