springboot2.x 接入阿里云市场短信发送的实现

 更新时间:2021年11月29日 09:11:53   作者:9540王楠楠  
本文主要介绍了springboot2.x 接入阿里云市场短信发送的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

1.短信平台购买次数地址

https://market.aliyun.com/products/57000002/cmapi00046920.html

提供测试模板、免审核、测试成本更低

2.测试学习使用的话,3块钱75多次够用了

3.购买后在跳转成功页面记录

AppSecret、key、code

 4.记录模板ID

5.上代码环节

@Configuration
public class RestTemplateConfig {
 
    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory){
        return new RestTemplate(requestFactory);
    }
 
    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
        SimpleClientHttpRequestFactory factory  = new SimpleClientHttpRequestFactory();
        factory.setReadTimeout(10000);
        factory.setConnectTimeout(10000);
        return factory;
    }
 
}

增加配置

@ConfigurationProperties(prefix = "sms")
@Configuration
@Data
public class SmsConfig {
 
    private String templateId;
 
    private String appCode;
 
}

application.yml

发送类

@Component
@Slf4j
public class SmsComponent {
 
    /**
     * 发送地址
     */
    private static final String URL_TEMPLATE = "https://jmsms.market.alicloudapi.com/sms/send?mobile=%s&templateId=%s&value=%s";
 
    @Autowired
    private RestTemplate restTemplate;
 
    @Autowired
    private SmsConfig smsConfig;
 
 
    /**
     * 发送短信验证码
     * @param to
     * @param templateId
     * @param value
     */
    public void send(String to,String templateId,String value){
 
        String url = String.format(URL_TEMPLATE,to,templateId,value);
        HttpHeaders headers = new HttpHeaders();
     
        headers.set("Authorization","APPCODE "+smsConfig.getAppCode());
        HttpEntity entity = new HttpEntity<>(headers);
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
        log.info("url={},body={}",url,response.getBody());
        if(response.getStatusCode().is2xxSuccessful()){
            log.info("发送短信验证码成功");
        }else {
            log.error("发送短信验证码失败:{}",response.getBody());
        }
 
    }
}

测试类验证

@RunWith(SpringRunner.class)
@SpringBootTest(classes = AccountApplication.class)
@Slf4j
public class SmsTest { 
    @Autowired
    private SmsComponent smsComponent;
 
    @Autowired
    private SmsConfig smsConfig;
 
    @Test
    public  void testSendSms(){
 
        smsComponent.send("138XXXXXXX",smsConfig.getTemplateId(),"666888");
    }
}

发送成功咯

到此这篇关于springboot2.x 接入阿里云市场短信发送的实现的文章就介绍到这了,更多相关springboot 阿里云短信发送内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java两个变量的互换(不借助第3个变量)具体实现方法

    Java两个变量的互换(不借助第3个变量)具体实现方法

    这篇文章主要介绍了Java两个变量的互换(不借助第3个变量)具体实现方法,需要的朋友可以参考下
    2014-02-02
  • java中的static{}块的实例详解

    java中的static{}块的实例详解

    这篇文章主要介绍了java中的static{}块的实例详解的相关资料,这里提供实例来帮助大家理解该如何使用static块,需要的朋友可以参考下
    2017-08-08
  • Spring如何根据条件创建bean,@Conditional注解使用方式

    Spring如何根据条件创建bean,@Conditional注解使用方式

    这篇文章主要介绍了Spring如何根据条件创建bean,@Conditional注解使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • springsecurity 登录认证流程分析一(ajax)

    springsecurity 登录认证流程分析一(ajax)

    这篇文章主要介绍了springsecurity 登录认证一(ajax篇),本文通过实例代码图文相结合给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • mybatis-plus多表联查join的实现

    mybatis-plus多表联查join的实现

    本文主要介绍了mybatis-plus多表联查join的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Java异步编程之Callbacks与Futures模型详解

    Java异步编程之Callbacks与Futures模型详解

    这篇文章主要为大家详细介绍了Java异步编程中Callbacks与Futures模型的使用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • springboot+vue实现websocket配置过程解析

    springboot+vue实现websocket配置过程解析

    这篇文章主要介绍了springboot+vue实现websocket配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • springboot开启声明式事务的方法

    springboot开启声明式事务的方法

    本篇文章主要介绍了springboot开启声明式事务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • SpringBoot常用注解@RestControllerAdvice详解

    SpringBoot常用注解@RestControllerAdvice详解

    这篇文章主要介绍了SpringBoot常用注解@RestControllerAdvice详解,@RestControllerAdvice是一个组合注解,由@ControllerAdvice、@ResponseBody组成,而@ControllerAdvice继承了@Component,因此@RestControllerAdvice本质上是个Component,需要的朋友可以参考下
    2024-01-01
  • MyBatis通过BATCH批量提交的方法

    MyBatis通过BATCH批量提交的方法

    今天小编就为大家分享一篇关于MyBatis通过BATCH批量提交的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12

最新评论