天天看點

【springMVC整合spring-session --redis】

注意:存入session的bean要序列化

1、導入依賴

<!-- Spring session -->
	<dependency>
	  <groupId>org.springframework.session</groupId>
	  <artifactId>spring-session-data-redis</artifactId>
	  <version>1.2.1.RELEASE</version>
	</dependency>
	<dependency>
	  <groupId>redis.clients</groupId>
	  <artifactId>jedis</artifactId>
	  <version>2.8.1</version>
	</dependency>
           

2、配置spring-session.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                         http://www.springframework.org/schema/context
                         http://www.springframework.org/schema/context/spring-context-3.0.xsd"
    >
                         
    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"
          p:maxIdle="300" p:maxWaitMillis="1000" p:testOnBorrow="true">
    </bean>
    <!-- 配置檔案 -->
	<context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>  
    <!-- 添加RedisHttpSessionConfiguration用于session共享 -->
    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>

    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
          p:hostName="${redis.host}" 
          p:port="${redis.port}" 
          p:password="${redis.password}" p:poolConfig-ref="poolConfig"
          p:usePool="true"
          p:database="${redis.database}"
          p:timeout="3000"/>

</beans>
           

注意:加入掃描

<!--spring session -->
	<import resource="classpath:dev/spring-session.xml"/>  
           

3、web.xml添加過濾器

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
   <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>
           

注意:必須掃描配置的spring-sessipn.xml檔案

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring/*.xml</param-value>
  </context-param>
           

參考:https://www.cnblogs.com/jiafuwei/p/6425604.html

繼續閱讀