Spring Boot 一个依赖搞定 session 共享,没有比这更简单的方案了!
Spring Boot 使用 Spring Session 可以很容易地实现 session 共享。Spring Session 支持将应用session存储在不同的地方,比如Redis、JDBC等。以下是一个使用Spring Session和Redis实现session共享的简单示例。
- 添加依赖到你的
pom.xml
:
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- Spring Session for Redis -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
</dependencies>
- 在
application.properties
或application.yml
中配置Redis服务器:
# application.properties
spring.redis.host=localhost
spring.redis.port=6379
- 在Spring Boot应用中使用Spring Session:
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@EnableRedisHttpSession // 启用Redis作为session存储
public class SessionController {
@RequestMapping("/put")
@ResponseBody
public String putSession(HttpServletRequest request) {
request.getSession().setAttribute("key", "value");
return "Session stored";
}
@RequestMapping("/get")
@ResponseBody
public String getSession(HttpServletRequest request) {
return request.getSession().getAttribute("key").toString();
}
}
这样就配置了一个使用Redis作为session存储的Spring Boot应用。当应用部署在多个实例上时,用户的session会被存储在Redis中,实现了session共享。
评论已关闭