在团队项目中我们可能使用了xml配置而非注解配置,而在xml配置中加入spring session是很简单的。
1.加入依赖库
按照上一章步骤加入spring session依赖库
2.配置session repository filter
在web.xml中尽量靠前的位置加入配置
<!-- tag::springSessionRepositoryFilter[] -->
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- end::springSessionRepositoryFilter[] -->
可以放在<context-param>和<listener>配置下的第一个<filter>。
如果项目中已经使用了spring security,会有以下配置
<!-- spring security filter -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
则需要确定springSessionRepositoryFilter的配置在springSecurityFilterChain之前。
3.配置spring session及redis
在spring配置文件中加入以下内容
<!-- tag::beans[] -->
<context:annotation-config/>
<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="port" value="6379"/>
<property name="hostName" value="192.168.24.31"/>
</bean>
<!-- end::beans[] -->
第一二行会启用redis存储session并使用自带注释声明。
jedisConnectionFactory则配置远程redis缓存集群地址。
4.部署测试
使用上一章的index.jsp和SessionServlet进行测试,可看到session实现已替换。
停止并重新启动tomcat后session也不会丢失。
5.优缺点
spring session不依赖于web容器实现,一个会话跨tomcat、jboss都可以使用。
但因为每次请求处理前都要从远程缓存读取会话,并在处理后将会话写回缓存,所以访问速度严重依赖于内部网络及redis并发访问速度。且一旦redis停止服务,所有会话将无法访问,也不能创建新的会话。
对比其他web容器自身实现的会话共享(如jboss的基于本虚拟机infinispan缓存搭建集群的会话复制,或基于远程datagrid缓存集群的会话共享),在性能、稳定性上可能会有差异。
分享到:
相关推荐
本项目整合了这三个框架,并使用XML配置来管理各个组件,实现了基本的CRUD(创建、读取、更新、删除)功能以及分页查询。 首先,Struts2作为表现层框架,负责处理HTTP请求,控制应用程序的流程。通过定义Action类和...
然后,通过配置类或者@EnableRedisHttpSession注解启用Spring Session,并配置相应的Redis连接工厂: ```java @Configuration @EnableRedisHttpSession public class HttpSessionConfig { @Bean public ...
1. 创建配置类:创建一个配置类,使用`@EnableRedisHttpSession`注解开启SpringSession的Redis支持,并可自定义SessionRepository实现。 2. 替换默认Session:在`WebSecurityConfigurerAdapter`的配置中,替换默认的...
1. **配置依赖**:在项目的pom.xml文件中添加Spring Session和Redis的依赖。确保包含spring-session-data-redis、spring-boot-starter-data-redis以及相应的版本。 2. **配置Redis连接**:在application.properties...
2. **配置存储后端**: 配置Spring Session以使用特定的存储后端,例如Redis,需要在配置类中配置`RedisSessionFactory`和`RedisHttpSessionConfiguration`。 3. **注册SessionRegistry**: 在Spring配置中注册`...
首先,理解为什么要使用 SpringSession 和 Redis。在传统的 web 应用中,session 数据通常存储在单个应用服务器的内存中。当部署在多台 Tomcat 服务器上时,如果用户请求在不同的服务器之间切换,原始 session 数据...
通过以上步骤,你已经成功地将Spring和Hibernate整合在一起,使用全XML配置方式实现了数据访问层。这种方式虽然较为繁琐,但能清晰地分离各层职责,便于管理和维护。在实际项目中,还可以考虑使用注解配置或者Spring...
接下来,配置Spring Boot应用以使用Redis作为session存储。在`application.properties`或`application.yml`中设置Redis连接信息: ```properties spring.redis.host=localhost spring.redis.port=6379 ``` 在...
2. **配置 Spring Session**:在 Spring Boot 的配置文件(如 `application.properties` 或 `application.yml`)中,设置 Session 存储的相关参数。如果是使用 Redis,可能包括 Redis 的连接信息: ``` # ...
#### 二、使用Spring-Session + Redis实现Session共享 本节将详细介绍如何使用Spring-Session结合Redis来实现Session共享,包括必要的依赖项添加、配置以及具体的应用示例。 ##### 1. 添加依赖 为了使用Spring-...
这个配置类使用了 `@EnableRedisHttpSession` 注解,该注解启用了 Spring Session 对 Redis 的支持。`maxInactiveIntervalInSeconds` 参数指定了 Session 的过期时间。 配置 Redis 连接 在生产环境中,需要更新...
要使用SpringSession与Redis进行Session共享,首先你需要在你的项目中添加相关的依赖。"sprig redis依赖jar"可能指的是Spring Session和Redis的相关JAR包,这通常包括Spring Session的核心库、Spring Data Redis以及...
在Spring框架中,`applicationContext.xml`是核心配置文件,用于定义bean的声明、依赖注入、数据源配置、事务管理等。在这个配置文件中,我们可以深入理解Spring如何管理和协调应用程序的各个组件。以下是对`...
标题 "Spring Boot + Spring Session + Redis" 涉及到的是在Java开发中,使用Spring Boot框架集成Spring Session和Redis来实现会话管理的技术方案。这个解决方案主要解决分布式系统中的session共享问题,使得用户在...
本案例旨在教你如何配置和使用SpringSession与Redis来达到这一目的。 首先,我们需要理解Session的基本概念。Session是在服务器端存储用户状态的一种方式,通常用于管理用户的登录信息、购物车等数据。然而,在单体...
然后,我们需要配置Spring Boot以使用Spring Session,这可以通过在`application.properties`或`application.yml`文件中指定Session存储类型(例如:`spring.session.store-type=redis`)。 2. **配置Redis连接**:...
在`spring-redis-cluster.xml`中配置Spring Session,指定使用Redis作为Session存储,并设置相应的Redis连接工厂。 ```xml <bean id="sessionRepository" class="org.springframework.session.data.redis....
在这个"spring framework xml配置使用示例"中,我们将深入探讨Spring框架如何通过XML来配置和管理Bean。 1. **Bean的定义** 在Spring中,Bean代表应用程序中的对象,它们由Spring容器创建、初始化、装配和管理。在...
2. 配置Spring Session:在Spring配置文件中,配置Session存储的实现,例如使用Redis存储Session,需要配置Redis连接信息。 3. 配置Session跨域:在Spring MVC的配置类中,添加`@EnableSpringHttpSession`注解以...
1. **添加依赖**:在`pom.xml`中添加Spring Security、MySQL驱动和相应session共享技术的依赖。 2. **配置Spring Security**:在配置类中开启Spring Security,配置认证和授权规则,例如使用`...