手机短信验证功能(redis+springboot)

1.我们需要redis 来缓存 所发来的验证码,所以先弄redis
下载好以后先启动服务
**加粗样式
**
没有连接就创建连接
使用网上的帮助类,同时导入jar包

2.上阿里云,充钱,开启阿里大于短信服务,然后测试能不能发短信

3.网上找到帮助类,继续测试收发短信

出现的问题:
1.NoClassDefFoundError异常
要把帮助类的static代码块的内容写到try-catch里面
具体的看分析
https://blog.csdn.net/wangjun5159/article/details/52716679?ops_request_misc=&request_id=&biz_id=102&utm_term=java.lang.NoClassDefFoundError&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-52716679.first_rank_v2_pc_rank_v29

2.java.lang.ClassNotFoundException: redis.clients.jedis.util.SafeEncoder
这是因为jedis版本的问题
具体的看分析
https://blog.csdn.net/torisang/article/details/105718451?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161614450816780266251275%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161614450816780266251275&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-2-105718451.first_rank_v2_pc_rank_v29&utm_term=java.lang.ClassNotFoundException%3A+redis.clients.jedis.util.SafeEncoder

3.springboot整合redis时,需要加对应的pom,要不编译不了,会一直找不到帮助类

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.4.3</version>
        </dependency>

4.redis帮助类

package com.www.classroom_system.utils;

import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;

import java.util.concurrent.TimeUnit;

public class RedisClient {
    private static StringRedisTemplate redisTemplate=null;
    static {
        try {
            // 创建StringRedisTemplate对象
            redisTemplate = new StringRedisTemplate();
            // 创建连接工厂并进行相关参数设置
            JedisConnectionFactory factory = new JedisConnectionFactory();
            // 不使用池技术
            factory.setUsePool(false);
            //这个名字就是redis可视化软件的连接名
            factory.setClientName("medical_db");
            // 连接的Redis数据库名称
            factory.setHostName("localhost");
            // 连接的Redis数据库主机名,默认本 机
            factory.setPassword("");
            // 连接的Redis数据库密码
            factory.setPort(6379);
            // 连接的Redis数据库端口号
            // 完成工厂设置
            factory.afterPropertiesSet();
            redisTemplate.setConnectionFactory(factory);
            // 完成Redis模板工具类设置
            redisTemplate.afterPropertiesSet();
        }catch (Exception e){
            e.printStackTrace();
        }
}

        // 对外提供方法获取Redis模板工具类
        public static RedisTemplate redisTemplate(){ return redisTemplate; }
        // 测试代码
        public static void main(String[] args) {
        //传数据,第一个参数是传入名,第二个是传入数据,第三个是有效时间,第四个是有效时间的单位
         redisTemplate.opsForValue().set("smcode","134222",3, TimeUnit.MINUTES);
         String smcode = redisTemplate.opsForValue().get("smcode");
         System.out.println(smcode);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值