🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# spring boot + redis 目前是主要流行的配置 通过spring boot + redis实现session共享的步骤如下: ## 运行redis注意 如果是windows运行redis,需要自定义一个bat文件,最重要的时候conf文件要配置上,bat文件内容: `redis-server redis.windows.conf` ## 添加依赖 pom.xml增加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> ``` 注意,在有的IDEA版本中的m`aven projects `面板中,会提示 `spring-boot-starter-redis` 未找到,所以这里可以改成` spring-boot-starter-data-redis`,拒查两个类内容是一样的。 ## 添加配置类 在项目目录里随便找个位置,新建一个配置类,内容如下。 ~~~ @Configuration @EnableRedisHttpSession public class RedisSessionConfig { } ~~~ @EnableRedisHttpSession这个注解是由spring-session-data-redis提供的。 ## 配置redis 首先电脑里得有redis,否则无法使用,windows安装redis也很简单,请自行百度。 application.properties里设置主机和端口: ~~~ spring.redis.host=localhost spring.redis.port=6379 ~~~ 另外还有很多其他配置: ~~~ spring.redis.host=localhost spring.redis.port=6379 spring.redis.database=0 spring.redis.password= spring.redis.timeout=300 spring.redis.maxIdle=8 spring.redis.minIdle=0 spring.redis.maxActive=8 spring.redis.maxWait=-1 ~~~ 如果redis配置错误,会提示无法连接Jedis提示。注意默认端口是6379,网上有的写错了写成6397了,不要直接复制。 ## 万事具备,来一个controller搞一下 ~~~ @ResponseBody @RequestMapping(value = "/setsession", method = RequestMethod.GET) public Map<String, Object> setSession (HttpServletRequest request){ Map<String, Object> map = new HashMap<>(); request.getSession().setAttribute("设置session的网址是", request.getRequestURL()); // 设置session值 map.put("request Url", request.getRequestURL()); return map; } @ResponseBody @RequestMapping(value = "/getsession", method = RequestMethod.GET) public Object getSettion (HttpServletRequest request){ Map<String, Object> map = new HashMap<>(); map.put("sessionId", request.getSession().getId()); // 取值 map.put("message", request.getSession().getAttribute("map")); return map; } ~~~ @ResponseBody 可以看情况加,它返回的是json类型字符串;如果类里注解了@RestController就省略掉。 ## 访问一下 http:://127.0.0.1/setsession,浏览器输出: ``` {"设置session的网址是":"http://localhost:8080/setsession"} ``` http:://127.0.0.1/getsession,浏览器输出: ``` {"sessionId":"...","message":"http://localhost:8080/setsession"} ``` 支持多端口共享。