Spring Session

6731 ワード

Spring Session
概要
Spring Sessionはユーザーsessionを管理するAPIと実現を提供し、直接クラスタ環境Sesison管理、単一ブラウザの複数のSession、RESTful APIs Session、クラスタSession管理統合はアプリケーションコンテナに依存しない.SessionストレージRedis、GemFire、JDBC、Mongoをサポートします.Spring Session docsを参照してください
Redisストレージセッションの使用
Redisは広く使用され、性能が優れ、クラスタ環境に適している.Spring Boot統合を使用すると、より便利になります:1.spring-session依存2を加える.spring-data-redis依存3を加える.@EnableRedisHttpSession以下はSpring Boot統合Spring Sessionを使用しないものです.
Javaコード構成に基づくSpring Sessionの統合
  • 加入依存
  • <dependency>
        <groupId>org.springframework.sessiongroupId>
        <artifactId>spring-session-data-redisartifactId>
        <version>1.2.0.RELEASEversion>
        <type>pomtype>
    dependency>
  • @EnableRedisHttpSessionを構成クラスに追加し、JedisConnectionFactory Bean
  • を構成します.
    @Configuration
    @EnableRedisHttpSession 
    public class SessionConfig {
        @Bean
        public JedisConnectionFactory connectionFactory() {
            JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
            jedisConnectionFactory.setHostName("172.16.31.84"); //   localhost
            jedisConnectionFactory.setPort(6379); //   6379
            jedisConnectionFactory.setDatabase(0); //   0
            jedisConnectionFactory.afterPropertiesSet();
            return jedisConnectionFactory;
            }
    }
  • A b s t r a c t H t p S e s e ssionApplicationInitializerを継承し、親メソッドを呼び出す参照なしで構成クラス
  • に転送する
    public class SessionInitializer extends AbstractHttpSessionApplicationInitializer{
        public SessionInitializer() {
            super(SessionConfig .class);
        }
    }

    XMLベース構成統合Spring Session
  • 注釈構成を有効にするRedisHttpSessionConfiguration、JedisConnectionFactory Bean
  • <context:annotation-config />
    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration" />
    <bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="hostName" value="172.16.31.84" />
        <property name="port" value="6379" />
    bean>
  • webを構成する.xmlはDelegatingFilterProxy
  • に加入
    
    <filter>
        <filter-name>springSessionRepositoryFilterfilter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxyfilter-class>
    filter>
    <filter-mapping>
        <filter-name>springSessionRepositoryFilterfilter-name>
        <url-pattern>/*url-pattern>
        <dispatcher>REQUESTdispatcher>
        <dispatcher>ERRORdispatcher>
    filter-mapping>

    Spring Session RESTFul APIs
    Spring SessionはRESTFul APISをサポートし、応答してx-auth-tokenを最初に返し、現在のsessionのtokenを識別する.
    Javaコード構成に基づく統合Spring SessionサポートRESTFul APIs
    Spring Sessionが1つのHttpSessionStrategy beanを複数構成する必要がある
    @Bean
    public HttpSessionStrategy httpSessionStrategy() {
        HeaderHttpSessionStrategy headerHttpSessionStrategy = new HeaderHttpSessionStrategy();
        headerHttpSessionStrategy.setHeaderName("Auth-Token");
        return headerHttpSessionStrategy;
    }