本篇文章給大家分享的是有關(guān)如何在SpringBoot2中使用Spring Session集群,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蘆山,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
1.擴(kuò)展指定server
利用Servlet容器提供的插件功能,自定義HttpSession的創(chuàng)建和管理策略,并通過配置的方式替換掉默認(rèn)的策略。缺點:耦合Tomcat/Jetty等Servlet容器,不能隨意更換容器。
2.利用Filter
利用HttpServletRequestWrapper,實現(xiàn)自己的 getSession()方法,接管創(chuàng)建和管理Session數(shù)據(jù)的工作。spring-session就是通過這樣的思路實現(xiàn)的。
3 利用spring session
Spring Boot中spring session支持方式:
JDBC、MongoDB、redis、Hazelcast、HashMap
一、引入maven依賴
UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-data-redis org.springframework.session spring-session-data-redis org.springframework.boot spring-boot-starter-web
二、配置application.properties
server.port=8080 spring.redis.host=localhost spring.redis.port=6379 # spring session使用存儲類型 spring.session.store-type=redis
?spirngboot默認(rèn)就是使用redis方式,如果不想用可以填none。、
三、在啟動類中加入@EnableRedisHttpSession 注解
package com.shyroke; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; @EnableCaching @EnableRedisHttpSession @SpringBootApplication public class SpringbootSessionApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSessionApplication.class, args); } }
四、編寫控制器
package com.shyroke.controller; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.http.HttpRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping(value = "/") public class IndexController { @ResponseBody @RequestMapping(value = "/session") public MapgetSession(HttpServletRequest request) { request.getSession().setAttribute("username", "admin"); Map map = new HashMap (); map.put("sessionId", request.getSession().getId()); return map; } @ResponseBody @RequestMapping(value = "/get") public String get(HttpServletRequest request) { String userName = (String) request.getSession().getAttribute("username"); return userName; } }
五、測試
?先輸入http://localhost:8080/session,在session中設(shè)置一個值
?http://localhost:8080/get,獲取session中的值
?復(fù)制這個工程,application.properties中的server.port=8081,然后訪問“http://localhost:8081/get”,如下獲取到了另一個工程中設(shè)置的session的值。
以上就是如何在SpringBoot2中使用Spring Session集群,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。