使用redis存储对象,取对象时的一些常见异常

  1. 自动装配失败报空指针异常
    报错:
java.lang.NullPointerException
	at com.example.service.UserServiceImpl.sendMsg(UserServiceImpl.java:29)
	at com.example.controller.UserController.genVerifyCode(UserController.java:19)
	//以下省略一大串

解决方式之一:RedisTemplate更改为@Resource自动填充

解决方式之二:在方式一的基础上,加上redis序列化
在项目config包下,将准备好的序列化文件复制进去,
在这里插入图片描述

  1. 取出对象时强制类型转换失败
    报错:
XxxClass1 cannot be cast to XxxClass2

解决方式之一:因为redis存储时会转化为string类型存储,所以我们在取出时进行相应转化
在这里插入图片描述
注意:测试时注意token时效

在Spring Boot项目中集成Redis存储`String`对象是一个常见的需求,下面详细介绍如何实现这一功能: ### 1. 引入依赖 首先,在你的`pom.xml`文件里添加必要的Maven依赖来引入Spring Data Redis库。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- 如果需要连接到本地运行的Redis服务器,则可以考虑加入如下Jedis客户端依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.x.x</version> <!-- 使用当前最新的版本 --> </dependency> ``` 注意替换合适的版本号,并确保使用的是最新稳定版。 ### 2. 配置Redis连接信息 接着,在`application.properties`或`application.yml`配置文件内设置Redis的基本链接参数。 对于`.properties`文件来说: ```properties # Redis数据库索引 (默认值0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务端口,默认6379 spring.redis.port=6379 ``` 如果你采用YAML格式的话则相应调整即可。 ### 3. 编写操作Redis的服务层组件 创建一个新的Service类用于处理业务逻辑中的缓存读、更新等动作。这里简单示例如下: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; @Service public class CacheServiceImpl implements CacheService { @Autowired private StringRedisTemplate template; // 操作字符串类型的模板 public void setKey(String key, String value) { this.template.opsForValue().set(key,value); } public String getKey(String key){ return this.template.opsForValue().get(key); } } ``` 上述代码片段展示了通过注入`StringRedisTemplate`实例化后对key-value键值对的操作方法。 此已经可以在应用程序任意位置调用上面封装好的service接口完成基本增删改查了! 以上就是在SpringBoot项目中利用Redis保存简单的字符串数据的大致步骤,当然实际生产环境中还需要考虑更多因素如异常捕获机制、事务支持以及性能优化等方面的问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值