SpringBoot整合redis在thymeleaf上实现登录
时间: 2024-02-03 12:14:01 浏览: 111
要在Thymeleaf上使用SpringBoot整合Redis实现登录可以按照以下步骤进行:
1. 在pom.xml中添加SpringBoot和Redis的依赖:
```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
spring.redis.port=6379
spring.redis.password=
```
3. 创建一个RedisUtil工具类,用于操作Redis缓存。可以参考以下代码:
```java
@Component
public class RedisUtil {
@Autowired
private StringRedisTemplate redisTemplate;
public void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public String get(String key) {
return redisTemplate.opsForValue().get(key);
}
public void delete(String key) {
redisTemplate.delete(key);
}
}
```
4. 创建一个User实体类,用于存储用户信息,例如id、username、password等。
5. 在登录控制器中,当用户登录成功后,将用户信息存储到Redis缓存中,并设置过期时间。可以参考以下代码:
```java
@Controller
public class LoginController {
@Autowired
private RedisUtil redisUtil;
@PostMapping("/login")
public String login(User user, Model model) {
// 验证用户登录信息
// ...
// 将用户信息存储到Redis缓存中
redisUtil.set("user:" + user.getId(), JSON.toJSONString(user));
redisUtil.expire("user:" + user.getId(), 3600);
// 将用户信息添加到Model中,以便在页面上显示
model.addAttribute("user", user);
return "index";
}
}
```
6. 在Thymeleaf模板中,通过RedisUtil工具类获取当前登录用户的信息,并在页面上显示。可以参考以下代码:
```html
<div th:if="${session.user != null}">
<p>当前登录用户:[[${session.user.username}]]</p>
</div>
<div th:if="${session.user == null}">
<a href="/login">请登录</a>
</div>
```
注意:在Thymeleaf模板中,可以通过${session}对象获取当前会话的信息,例如当前登录用户的信息。
以上就是在Thymeleaf上使用SpringBoot整合Redis实现登录的步骤。
阅读全文