Spring Sessionによる分散型Session共有
11697 ワード
以前は分散環境でsession共有の問題を解決する必要がありましたが、tomcatなどのservletコンテナが提供するクラスタ構成を使用してsessionのレプリケーションの問題を解決することが多いです.今日は簡単な解決策を紹介します.
http://docs.spring.io/spring-session/docs/current/reference/html5/guides/httpsession.html#updating-dependenciesここではspring sessionの詳細について説明しますが、その使用もかなり簡単です.
1
1.依存の追加
2. spring-mvc.xmlプロファイルの追加:
3. web.xml追加
これにより分散セッションが実現される.
注意:1.Springのこのプロファイルは必ずwebに書かなければなりません.xmlの部分は、他の場所に書いてはいけません.
2.フィルタの名前はspringSessionRepositoryFilterでなければなりません
3.shiroを使ったら、web.xmlでは必ず一番前に置いて、shiroのFilter構成を書き、spring-sessionのFilter構成を書きます.後は他の符号化とservlet構成です.
個人的な理解:spring-sessionはオリジナルのsessionを指定した方法で格納するだけなので、sessionの操作については、何の修正もなく、侵入もなく、装飾者モードです.理解する人は自然に理解して、理解しない人は自分で体得しましょう.
http://docs.spring.io/spring-session/docs/current/reference/html5/guides/httpsession.html#updating-dependenciesここではspring sessionの詳細について説明しますが、その使用もかなり簡単です.
1
1.依存の追加
<dependency>
<groupId>org.springframework.sessiongroupId>
<artifactId>spring-session-data-redisartifactId>
<version>1.2.0.RELEASEversion>
dependency>
2. spring-mvc.xmlプロファイルの追加:
<context:annotation-config/>
<bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration" >
<property name="maxInactiveIntervalInSeconds" value="120" />
bean>
<bean
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="192.168.0.48" />
<property name="port" value="6379" />
bean>
3. web.xml追加
<context-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:spring-mvc.xmlparam-value>
context-param>
<filter>
<filter-name>springSessionRepositoryFilterfilter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxyfilter-class>
filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>
これにより分散セッションが実現される.
注意:1.Springのこのプロファイルは必ずwebに書かなければなりません.xmlの部分は、他の場所に書いてはいけません.
2.フィルタの名前はspringSessionRepositoryFilterでなければなりません
3.shiroを使ったら、web.xmlでは必ず一番前に置いて、shiroのFilter構成を書き、spring-sessionのFilter構成を書きます.後は他の符号化とservlet構成です.
個人的な理解:spring-sessionはオリジナルのsessionを指定した方法で格納するだけなので、sessionの操作については、何の修正もなく、侵入もなく、装飾者モードです.理解する人は自然に理解して、理解しない人は自分で体得しましょう.