`
wb284551926
  • 浏览: 551381 次
文章分类
社区版块
存档分类
最新评论

spring-session-redis存储(转载)

 
阅读更多

 前提条件

     1、已经安装成功了Redis server,并且正常使用。

     2、创建基于maven的spring web工程。

     本文主要讲解的是按照XML配置方法实现,另有注解方式可以实现,可参见官网。

 

     官网对于一些依赖的最低要求:

Java 5+

If you are running in a Servlet Container (not required), Servlet 2.5+

If you are using other Spring libraries (not required), the minimum required version is Spring 3.2.14. While we re-run all unit tests against Spring 3.2.x, we recommend using the latest Spring 4.x version when possible.

@EnableRedisHttpSession requires Redis 2.8+.

 

    于是我选择的版本如下

JDK1.8
redis-3.2.1
spring 4.2.5.RELEASE
servlet 3.0.1

 

    使用SPRING来共享SESSION基于REDIS按照以下步骤实现

    1、添加POM文件依赖,主要的依赖有

 

[xml] view plain copy
 
  1. <dependency>  
  2.           <groupId>org.springframework.session</groupId>  
  3.           <artifactId>spring-session-data-redis</artifactId>  
  4.           <version>1.3.0.RELEASE</version>  
  5. </dependency>  
  6. <dependency>  
  7.           <groupId>redis.clients</groupId>  
  8.           <artifactId>jedis</artifactId>  
  9.           <version>2.8.1</version>  
  10. </dependency>  
  11. <dependency>  
  12.         <groupId>org.springframework</groupId>  
  13.         <artifactId>spring-web</artifactId>  
  14.         <version>4.2.5.RELEASE</version>  
  15. </dependency>  

 2、在web.xml里面配置生成springSessionRepositoryFilter

 

 

[xml] view plain copy
 
  1. <context:annotation-config/>  
  2.     <bean id="redisHttpSessionConfiguration"  
  3.           class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">  
  4.         <property name="maxInactiveIntervalInSeconds" value="600"/>  
  5.     </bean>  
  6.   
  7.     <bean id="jedisConnectionFactory"  
  8.           class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy">  
  9.         <property name="hostName" value="192.0.0.1"/>  
  10.         <property name="port" value="19900"/>  
  11.         <property name="password" value="password" />  
  12.         <property name="timeout" value="3000"/>  
  13.         <property name="usePool" value="true"/>  
  14.         <property name="poolConfig" ref="jedisPoolConfig"/>  
  15.     </bean>  
  16.   
  17.     <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">  
  18.         <property name="connectionFactory" ref="jedisConnectionFactory"/>  
  19.     </bean>  

   这里面的参数大概介绍下

 

   hostName:redis所在主机IP

   port:redis所在主机监听的端口

   password:redis上配置的认证auth的密码

 

3、在web.xml里面配置过滤器

 

[xml] view plain copy
 
  1. <filter>  
  2.     <filter-name>springSessionRepositoryFilter</filter-name>  
  3.     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
  4.   </filter>  
  5.   <filter-mapping>  
  6.     <filter-name>springSessionRepositoryFilter</filter-name>  
  7.     <url-pattern>/*</url-pattern>  
  8.   </filter-mapping>  

 

扔个官网链接

http://docs.spring.io/spring-session/docs/current/reference/HTML5/guides/httpsession-xml.html

 

 

   这个时候出现了一个问题,困扰了不少时间

七月 22, 2016 3:35:37 下午 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter springSessionRepositoryFilter
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:698)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1060)
at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:326)
at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235)
at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:199)

 

   报错springSessionRepositoryFilter不存在,经过几次和官网的例子对比已经网上找了很久答案依然无解。

   

   最后赖着性子一句一句从官网介绍读取,可以看到这样一句话

   

 

 上图中说明了是步骤1创建的springSessionRepositoryFilter。仔细检查web.xml。确保springSessionRepositoryFilter先于启动flter创建了即可。

 

DEMO代码下载链接

http://download.csdn.NET/detail/tgj1202/9583951

 

原文地址:http://blog.csdn.net/tgj1202/article/details/51995853

分享到:
评论

相关推荐

    Spring-session2整合spring5+redis

    再者,Spring-session-data-redis是Spring Session的一个模块,专门针对Redis存储会话数据。它提供了会话监听、过期策略、以及会话复制等功能,使得在分布式环境中,多个服务器可以共享和访问用户的会话信息。 最后...

    nginx+spring-session+redis 实现session共享

    `Spring-Session` 是Spring的一个扩展模块,它允许我们在不修改现有代码的情况下,将session数据持久化到外部存储,如Redis。这样,所有服务器都可以访问同一个session存储,确保了会话状态的一致性。 接着,我们来...

    学习Spring-Session+Redis实现session共享

    Spring-Session正是为此而设计的一个框架,它提供了一种机制来存储用户的会话信息至中央数据存储区,如Redis等,从而实现跨服务共享。 #### 一、Spring-Session简介 Spring-Session是Spring框架提供的一个用于管理...

    spring-redis-session 自定义 key 和过期时间

    Spring-Redis-Session 是一个基于 Spring 框架的会话管理模块,它使用 Redis 作为会话存储介质,提供了灵活的会话管理机制。在本文中,我们将详细介绍 Spring-Redis-Session 的自定义 key 和过期时间的实现原理和...

    spring-session+spring+redis的依赖包

    本压缩包包含的“spring-session+spring+redis”组合,是将Spring Session与Redis集成,利用Redis作为会话存储介质,以实现高可用性和可扩展性。 首先,我们要了解Spring Session的核心概念。它通过替换默认的...

    springMVC集成spring-data-redis

    在SpringMVC中集成Spring Data Redis,可以利用Redis的高效特性来提升应用程序的数据处理能力,例如作为session共享的存储、缓存数据或者实现发布/订阅(Pub/Sub)功能。发布/订阅是一种通信模式,允许发送者(pub)将...

    spring-session实现session共享

    Spring-Session作为一个优秀的解决方案,它结合了Redis等分布式存储,有效地解决了这个问题,实现了跨域和多应用之间的Session统一存储,进而支持单点登录(Single Sign-On, SSO)。 Spring-Session是Spring社区...

    使用spring-session加redis来实现session共享.zip

    Spring Session是一个由Spring社区维护的项目,它允许我们通过多种后端存储(如Redis)来实现跨服务器的session共享。本项目“使用spring-session加redis来实现session共享”是一个基于Spring Boot框架的实现案例,...

    SpringSession+redis共享jar包

    SpringSession通过将Session数据持久化到外部存储,如Redis,实现了跨服务器的Session共享。 Redis 是一个高性能的键值数据库,常被用作缓存和消息代理。在SpringSession中,Redis被用作Session的存储后端,因为其...

    SpringDataRedis的jar包.rar

    Spring Data Redis是一个强大的Java库,它是Spring Data项目的一部分,旨在简化与Redis内存数据存储的集成。Redis是一个开源的、高性能的键值数据存储系统,常用于数据库、缓存和消息中间件。Spring Data Redis提供...

    spring Session与Redis的jar包

    Spring Session 提供了一种跨服务器共享会话数据的方法,通过将会话数据存储在外部存储,如Redis,而不是传统的JVM内存中。这样,即使在多台服务器之间负载均衡,用户的会话状态也能得到保持。Redis作为一个高效、轻...

    redis-session-manager-redis-session-manager-2.0.3.zip

    Redis Session Manager是一款基于Redis数据库实现的会话管理工具,它主要用在Web应用程序中,用于高效、安全地存储和管理用户的会话数据。这个压缩包文件"redis-session-manager-redis-session-manager-2.0.3.zip...

    redis-session-manager-redis-session-manager-2.0.2.zip

    Redis Session Manager是一款基于Redis数据库实现的会话管理工具,主要用于在分布式系统中高效、安全地存储和管理Web应用的用户会话数据。标题中的"redis-session-manager-redis-session-manager-2.0.2.zip"表明这是...

    spring-data-redis

    Spring Data Redis能很好地与其他Spring框架集成,如Spring Cache可以利用Redis作为缓存后端,Spring Session可以使用Redis存储用户的会话信息,Spring Cloud Data Flow可以利用Redis作为任务调度的存储。...

    redis-session-manager-redis-session-manager-2.0.2.tar.gz

    Redis Session Manager是一款基于Redis数据库实现的会话管理工具,它主要用在Web应用程序中,用于存储和管理用户的session数据。这个压缩包文件“redis-session-manager-redis-session-manager-2.0.2.tar.gz”是该...

    redis-session-manager-redis-session-manager-2.2.1.zip

    Redis Session Manager是一款基于Redis数据库实现的会话管理工具,它主要用在Web应用程序中,用于高效、安全地存储和管理用户的会话数据。这个压缩包文件"redis-session-manager-redis-session-manager-2.2.1.zip...

    redis-session-manager-redis-session-manager-2.2.1.tar.gz

    Redis Session Manager是一款基于Redis数据库实现的会话管理工具,它主要用在Web应用程序中,用于高效、安全地存储和管理用户的会话数据。这个压缩包文件"redis-session-manager-redis-session-manager-2.2.1.tar.gz...

    redis-session-manager-redis-session-manager-2.0.8.tar.gz

    Redis Session Manager是一个基于Redis的会话管理工具,用于在分布式环境中高效、安全地存储和管理Web应用程序的用户会话。2.0.8是该工具的一个版本,它提供了改进的功能和可能的错误修复。这个压缩包文件“redis-...

    spring-data-redis-1.0.1

    6. **集成其他Spring组件**:Spring Data Redis可以与Spring Cache、Spring Session等组件无缝集成,实现缓存管理和用户会话管理,进一步提升应用性能和用户体验。 7. **配置与扩展**:1.0.1版本在配置方面进行了...

    redis-session-manager-redis-session-manager-2.0.0.zip

    Redis Session Manager是一款基于Redis数据库实现的会话管理工具,它主要用在Web应用程序中,用于存储和管理用户的session数据。Redis作为一个高性能的键值存储系统,因其内存存储、速度快、支持丰富的数据结构等...

Global site tag (gtag.js) - Google Analytics