崛起于Springboot2.X + session共享(50)

《SpringBoot2.X心法总纲》redis

      简介:session共享是不一样项目共享一个资源,譬如单点登陆。spring

一、pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>

二、application.properties

    默认选择的是redis库15。缓存

server.port=8082

spring.redis.database=15
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
spring.redis.timeout=10000ms

三、开启session缓存

      在启动类添加下面注解EnableRedisHttpSession。session

@SpringBootApplication
@EnableRedisHttpSession
public class DockerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DockerApplication.class, args);
    }
}

四、Controller

@Controller
public class FirstController {


    @GetMapping(value = "/session")
    @ResponseBody
    public void session(HttpServletRequest request){
        request.getSession().setAttribute("name",request.getRequestURL());
    }

    @GetMapping(value = "/gainSession")
    @ResponseBody
    public void gainSession(HttpServletRequest request){
        String name = request.getSession().getAttribute("name").toString();
        System.out.println(name);
    }
 }

五、测试

      启动项目,运行 localhost:8082/session,这个时候你会发现redis库15中会有相关session记录,过时时间是1800(默认的,你能够在代码中设置)app

     

    因此你调用 http://localhost:8082/gainSession 结果以下:spring-boot

    

六、更换端口号8083

server.port=8083

      给项目更换端口号意味着变成了另一个项目,这样在从新调用http://localhost:8083/gainSession的时候,看看会不会获得session。测试

      结果也是获得相同的结果,因此就代表咱们能够经过这个方式实现单点登陆,不过前提仍是须要全部的项目使用共同的redis库,毕竟session是存到了redis中。 spa

相关文章
相关标签/搜索