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);
}
}