Java最全springboot业务功能实战(七)手把手教你使用阿里云短信,mysql事务面试题

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

if (item.getTemplateCode().equals(templateCode)) {

return item;

}

}

return null;

}

}

配置类

这里面需要两个参数accessKeyId,accessKeySecret 在以下位置获取

在代码中替换就可以了

import com.alibaba.fastjson.JSONObject;

import com.aliyuncs.DefaultAcsClient;

import com.aliyuncs.IAcsClient;

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;

import com.aliyuncs.exceptions.ClientException;

import com.aliyuncs.profile.DefaultProfile;

import com.aliyuncs.profile.IClientProfile;

import com.vanpeng.systemportal.modules.dysms.constant.DySmsEnum;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Component;

@Component

public class DySmsHelper {

private final static Logger logger = LoggerFactory.getLogger(DySmsHelper.class);

//产品名称:云通信短信API产品,无需替换

static final String product = “Dysmsapi”;

//产品域名,无需替换

static final String domain = “dysmsapi.aliyuncs.com”;

//此处需要替换成开发者自己的AK(在阿里云访问控制台寻找 本类需要修改此处)

static String accessKeyId;

static String accessKeySecret;

public static void setAccessKeyId(String accessKeyId) {

DySmsHelper.accessKeyId = accessKeyId;

}

public static void setAccessKeySecret(String accessKeySecret) {

DySmsHelper.accessKeySecret = accessKeySecret;

}

public static String getAccessKeyId() {

return accessKeyId;

}

public static String getAccessKeySecret() {

return accessKeySecret;

}

public boolean sendSms(String phone, JSONObject templateParamJson, DySmsEnum dySmsEnum) throws ClientException {

//可自助调整超时时间

System.setProperty(“sun.net.client.defaultConnectTimeout”, “10000”);

System.setProperty(“sun.net.client.defaultReadTimeout”, “10000”);

//初始化acsClient,暂不支持region化

IClientProfile profile = DefaultProfile.getProfile(“cn-hangzhou”, accessKeyId, accessKeySecret);

DefaultProfile.addEndpoint(“cn-hangzhou”, “cn-hangzhou”, product, domain);

IAcsClient acsClient = new DefaultAcsClient(profile);

//验证json参数

validateParam(templateParamJson, dySmsEnum);

//组装请求对象-具体描述见控制台-文档部分内容

SendSmsRequest request = new SendSmsRequest();

//必填:待发送手机号

request.setPhoneNumbers(phone);

//必填:短信签名-可在短信控制台中找到

request.setSignName(dySmsEnum.getSignName());

//必填:短信模板-可在短信控制台中找到

request.setTemplateCode(dySmsEnum.getTemplateCode());

//可选:模板中的变量替换JSON串,如模板内容为"亲爱的 n a m e , 您的验证码为 {name},您的验证码为 name,您的验证码为{code}"时,此处的值为

request.setTemplateParam(templateParamJson.toJSONString());

//选填-上行短信扩展码(无特殊需求用户请忽略此字段)

//request.setSmsUpExtendCode(“90997”);

//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者

//request.setOutId(“yourOutId”);

boolean result = false;

//hint 此处可能会抛出异常,注意catch

SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);

logger.info(“短信接口返回的数据----------------”);

logger.info(“{Code:” + sendSmsResponse.getCode() + “,Message:” + sendSmsResponse.getMessage() + “,RequestId:” + sendSmsResponse.getRequestId() + “,BizId:” + sendSmsResponse.getBizId() + “}”);

if (“OK”.equals(sendSmsResponse.getCode())) {

result = true;

}

return result;

}

private static void validateParam(JSONObject templateParamJson, DySmsEnum dySmsEnum) {

String keys = dySmsEnum.getKeys();

String[] keyArr = keys.split(“,”);

for (String item : keyArr) {

if (!templateParamJson.containsKey(item)) {

throw new RuntimeException(“模板缺少参数:” + item);

}

}

}

}

测试类

总结

总的来说,面试是有套路的,一面基础,二面架构,三面个人。

最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友

三面蚂蚁金服成功拿到offer后,他说他累了

三面蚂蚁金服成功拿到offer后,他说他累了

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

img-4CmqbROj-1715325637695)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
手把手视频详细讲解项目开发过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 视频简介: 目前业界最流行的微服务架构正在或者已被各种规模的互联网公司广泛接受和认可,业已成为互联网开发人员必备技术。无论是互联网、云计算还是大数据Java平台已成为栈的生态体系,其重要性几乎不可替代。Spring Boot作为微服务的基础设施之一,背靠强大的Spring 生态社区,支撑Spring Cloud技术体系。本课程采用由浅入深,层层递进的讲解方式, 让你轻松掌握SpringBoot的快速构建Spring项目的方式,并且还深入剖析SpringBoot内部核心原理,如:自动配置原理,start原理,自定义start等, 让你知其然,知其所以然 讲解方式: 本课程采用由浅入深,层层递进的讲解方式, 让你轻松掌握SpringBoot的快速构建Spring项目的方式,并且还深入剖析SpringBoot内部核心原理,如:自动配置原理,start原理,自定义start等, 让你知其然,知其所以然 课程亮点: 1、课程由浅到深,由原理到实践,适合零基础入门学习。 2、课程中包含大量SpringBoot 原理讲解、源码分析。 3、课程中涉及很多SpringBoot 实用插件技术、监控技术; 适用人群: 1、有一定的Java基础以及SSM框架知识。 2、对目前职业有进一步提升要求,希望从事数据行业高薪工作的在职人员。 基础课程主讲内容包括: 阶段一:SpringBoot 快速入门 1. SpringBoot介绍 2. SpringBoot的核心功能 3. SpringBoot的优势 4. SpringBoot入门程序 5. SpringBoot配置文件类型 6. 配置文件与配置类的属性映射方式 7. SpringBoot整合Mybatis 8. SpringBoot整合Junit 9. SpringBoot整合Redis 阶段二: SpringBoot核心原理 1. 起步依赖原理分析 2. 自动配置原理解析 3. 自定义起步依赖并实现自动配置 4. 事件监听 5. 初始化流程 6. SpringBoot服务监控

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值