Java|Java实现短信验证码

作者简介:大家好,我是郭嘉烨
个人主页:郭嘉烨
往期链接: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}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

    推荐阅读