spring-boot集成redis获取token
时间: 2024-01-17 09:05:58 浏览: 126
可以使用Spring Boot中的RedisTemplate来集成Redis并获取token。以下是一个简单的示例:
1. 添加Redis依赖
在`pom.xml`文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
2. 配置Redis连接信息
在`application.properties`文件中添加以下配置:
```properties
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(如果没有设置密码则不需要)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
```
3. 编写获取token的方法
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class TokenUtil {
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 获取token
* @param key 键
* @param value 值
* @param expireTime 过期时间(单位:秒)
* @return token
*/
public String getToken(String key, String value, long expireTime) {
String token = redisTemplate.opsForValue().get(key);
if (token == null) {
// 生成新的token
token = UUID.randomUUID().toString().replaceAll("-", "");
redisTemplate.opsForValue().set(key, token, expireTime, TimeUnit.SECONDS);
}
return token;
}
}
```
4. 使用获取token的方法
```java
@RestController
public class TokenController {
@Autowired
private TokenUtil tokenUtil;
@GetMapping("/token")
public String getToken() {
String token = tokenUtil.getToken("user1", "123456", 3600);
return token;
}
}
```
这里假设用户的账号是`user1`,密码是`123456`,token的过期时间是1小时(3600秒)。在访问`/token`接口时,将自动生成一个新的token或返回已存在的token。
阅读全文