클 러 스 터 환경 에서 spring+session+redis,session 공유 문제

10014 단어 session 공유
spring+session+redis 가 session 공 유 를 할 때 가장 골 치 아 픈 것 은 jar 가방 충돌 문제 입 니 다.다음은 jar 가방 의 만능 조합 을 소개 합 니 다.redis 를 사용 하여 데이터 캐 시 를 하 든 session 을 사용 하여 jar 가방 조합 을 공유 하 든 모두 사용 할 수 있 습 니 다.
    <dependency>
            <groupId>org.springframework.sessiongroupId>
            <artifactId>spring-session-data-redisartifactId>
            <version>1.2.1.RELEASEversion>
        dependency>
        <dependency>
            <groupId>redis.clientsgroupId>
            <artifactId>jedisartifactId>
            <version>2.8.1version>
        dependency>

        
        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-pool2artifactId>
            <version>2.4.2version>
        dependency>

다음은 프로필 의 문제 입 니 다:spring-redis.xml
    
    <bean id="config" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="${redis.maxIdle}" />
        <property name="maxTotal" value="${redis.maxActive}" />
        <property name="maxWaitMillis" value="${redis.maxWait}" />
        <property name="testOnBorrow" value="${redis.testOnBorrow}" />
    bean>

    
    <bean id="connectionFactory"
        class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="hostName" value="${redis.host}" />
        <property name="port" value="${redis.port}" />
        <property name="password" value="${redis.pass}" />
        <property name="timeout" value="${redis.timeout}" />
        <property name="poolConfig" ref="config" />
    bean>


    <bean id="redisUtil" class="com.chinaedu.back.util.RedisUtil">
        <property name="jedisConnectionFactory" ref="connectionFactory" />
    bean>

    <bean id="redisCacheTransfer" class="com.chinaedu.back.util.RedisCacheTransfer">
        <property name="connectionFactory" ref="connectionFactory" />
    bean>

    
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="connectionFactory" />
    bean>


    
    <bean id="redisHttpSessionConfiguration"
        class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        <property name="maxInactiveIntervalInSeconds" value="600" />
    bean>

웹.xml 설정:
    <filter>
        <filter-name>springSessionRepositoryFilterfilter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxyfilter-class>
    filter>
    <filter-mapping>
        <filter-name>springSessionRepositoryFilterfilter-name>
        /*
    filter-mapping>

controller 의 일부 코드:
session.setAttribute("user", JSON.toJSONString(user1));//redis   key-value     ,  key value     ,   fastjson         ,    

여기까지 하면 됩 니 다.

좋은 웹페이지 즐겨찾기