美文网首页
005.整合Spring session和Redis

005.整合Spring session和Redis

作者: airkisser | 来源:发表于2017-08-26 11:48 被阅读0次

    1.添加maven依赖

            <!--jedis-->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>${jedis.version}</version>
            </dependency>
            <!--lettuce-->
            <dependency>
                <groupId>biz.paluch.redis</groupId>
                <artifactId>lettuce</artifactId>
                <version>${lettuce.version}</version>
            </dependency>
            <!--Jackson-->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            
    

    2.redis.properties

    redis.host=localhost
    redis.port=6379
    redis.password=
    redis.dbIndex=0
    

    3.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"
           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.xsd">
    
        <context:annotation-config/>
    
        <context:property-placeholder location="classpath:redis.properties" order="2" ignore-unresolvable="true"/>
    
        <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>
    
        <bean class="org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory">
            <property name="database" value="${redis.dbIndex}"/>
            <property name="hostName" value="${redis.host}"/>
            <property name="port" value="${redis.port}"/>
            <property name="password" value="${redis.password}"/>
        </bean>
    </beans>
    

    4.web.xml

    添加HttpSessionEventPublisher监听器以及DelegatingFilterProxy,DelegatingFilterProxy通过代理的方式从spring中获取名字跟filter-name相同的实现了javax.servlet.Filter接口bean,因此filter-name必须为"springSessionRepositoryFilter"。

    <!--当一个session结束的时候, 该监听器都会通知SessionRegistryImpl来删除这个session的信息-->
        <listener>
            <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
        </listener>
    
        <!--Spring Session-->
        <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>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>ERROR</dispatcher>
        </filter-mapping>
    

    相关文章

      网友评论

          本文标题:005.整合Spring session和Redis

          本文链接:https://www.haomeiwen.com/subject/acpmdxtx.html