您好,登錄后才能下訂單哦!
Springboot2.X session共享的示例分析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
《SpringBoot2.X心法總綱》
簡介:session共享是不同項目共享一個資源,譬如單點登錄。
<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>
默認選擇的是redis庫15。
server.port=8082 spring.redis.database=15 spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= spring.redis.timeout=10000ms
在啟動類添加下面注解EnableRedisHttpSession。
@SpringBootApplication @EnableRedisHttpSession public class DockerApplication { public static void main(String[] args) { SpringApplication.run(DockerApplication.class, args); } }
@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(默認的,你可以在代碼中設置)
所以你調用 http://localhost:8082/gainSession 結果如下:
server.port=8083
給項目更換端口號意味著變成了另外一個項目,這樣在重新調用http://localhost:8083/gainSession的時候,看看會不會得到session。
結果也是得到相同的結果,所以就表明我們可以通過這個方式實現單點登錄,不過前提還是需要所有的項目使用共同的redis庫,畢竟session是存到了redis中。
關于Springboot2.X session共享的示例分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。