<!-- 这里的是为了下面的 Session策略过滤器提供构造函数传入的参数,因为Session过滤器要依赖该对象来构造,所以创建一个先 --> <bean name="redisOperationsSessionRepository" class="org.springframework.session.data.redis.RedisOperationsSessionRepository"> <constructor-arg ref="jedisConnectionFactory"></constructor-arg> </bean> <!-- 这个是Session策略过滤器,即将容器原有的Session持久化机制,代替为Spring的 Redis持久化Session机制。 --> <!-- 注意,这个名字与 web.xml里的targetBean的下value是要一致的。 --> <bean name="springSession" class="org.springframework.session.web.http.SessionRepositoryFilter"> <constructor-arg ref="redisOperationsSessionRepository"></constructor-arg> </bean>
web.xml需要增加下面配置
<filter> <filter-name>spring-session</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetBeanName</param-name> <param-value>springSession</param-value> </init-param> </filter> <filter-mapping> <filter-name>spring-session</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
那么是否可以模仿这样,用shiro的session来代理呢(至于shiro是用redis还是ehcache,不用理会)?, 这样做,是直接屏蔽session的访问,跟shiro的配置一致。 不用在乎是httpSession还是shiro session.
1. 实现 FindByIndexNameSessionRepository, MessageListeneri 接口