崛起於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

相關文章
相關標籤/搜索