為何要用Spring-session
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比西夏網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式西夏網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋西夏地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
在傳統(tǒng)單機web應用中,一般使用tomcat/jetty等web容器時,用戶的session都是由容器管理。瀏覽器使用cookie中記錄sessionId,容器根據(jù)sessionId判斷用戶是否存在會話session。這里的限制是,session存儲在web容器中,被單臺服務器容器管理。
但是網(wǎng)站主鍵演變,分布式應用和集群是趨勢(提高性能)。此時用戶的請求可能被負載分發(fā)至不同的服務器,此時傳統(tǒng)的web容器管理用戶會話session的方式即行不通。除非集群或者分布式web應用能夠共享session,盡管tomcat等支持這樣做。但是這樣存在以下兩點問題:
需要侵入web容器,提高問題的復雜
web容器之間共享session,集群機器之間勢必要交互耦合
有了spring-session之后,我們可以將session保存到redis、MongoDB等NoSql數(shù)據(jù)庫。這樣就避免了單點緩存的限制。
Let's do it
1.引入jar包
org.springframework.session spring-session-data-redis redis.clients jedis 2.9.0
2、在application.properties中加入如下配置文件
#設置session存儲格式為redis spring.session.store-type=redis server.servlet.session.timeout=3600 #session更新策略,有ON_SAVE、IMMEDIATE,前者是在調(diào)用#SessionRepository#save(org.springframework.session.Session)時,在response commit前刷新緩存,#后者是只要有任何更新就會刷新緩存 spring.session.redis.flush-mode=on-save spring.session.redis.namespace=spring:session #redis配置 spring.redis.database=0 spring.redis.host=10.34.51.234 spring.redis.password=123456 spring.redis.pool.max-active=8 spring.redis.pool.max-idle=8 spring.redis.pool.max-wait=-1 spring.redis.pool.min-idle=0 spring.redis.port=6379
3、配置redis服務器
(略)
4、編寫SpringBoot程序
5、運行登錄一下吧
可以看到查看到了session信息
6、未完成序列化操作。不過我感覺也沒必要完成序列化操作吧~
結束!
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。