検索

第2章 Spring セッションでのセッションの外部化

download PDF

Spring アプリケーションのセッションデータを Data Grid キャッシュに、コンテナーとは独立して保存します。

2.1. Spring セッションでのセッションの外部化

Spring Session API を使用して、セッションデータを Data Grid に外部化します。

手順

  1. pom.xml に依存関係を追加します。

    • 埋め込みキャッシュ: infinispan-spring6-embedded
    • リモートキャッシュ: infinispan-spring6-remote

      以下は、リモートキャッシュの例になります。

      <dependencies>
          <dependency>
              <groupId>org.infinispan</groupId>
              <artifactId>infinispan-core</artifactId>
          </dependency>
          <dependency>
              <groupId>org.infinispan</groupId>
              <artifactId>infinispan-spring6-remote</artifactId>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>${version.spring}</version>
          </dependency>
          <dependency>
             <groupId>org.springframework.session</groupId>
             <artifactId>spring-session-core</artifactId>
             <version>${version.spring}</version>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
             <version>${version.spring}</version>
         </dependency>
      </dependencies>
  2. 適切な FactoryBean を指定して、CacheManager インスタンスを公開します。

    • 埋め込みキャッシュ: SpringEmbeddedCacheManagerFactoryBean
    • リモートキャッシュ: SpringRemoteCacheManagerFactoryBean
  3. 適切なアノテーションで Spring Session を有効にします。

    • 埋め込みキャッシュ: @EnableInfinispanEmbeddedHttpSession
    • リモートキャッシュ: @EnableInfinispanRemoteHttpSession

      これらのアノテーションには、オプションのパラメーターがあります。

      • maxInactiveIntervalInSeconds は、セッションの有効期限を秒単位で設定します。デフォルトは 1800 です。
      • cacheName は、セッションを格納するキャッシュの名前を指定します。デフォルトは sessions です。

以下の例は、完全なアノテーションベースの設定を示しています。

@EnableInfinispanEmbeddedHttpSession
@Configuration
public class Config {

   @Bean
   public SpringEmbeddedCacheManagerFactoryBean springCacheManager() {
      return new SpringEmbeddedCacheManagerFactoryBean();
   }

   //An optional configuration bean responsible for replacing the default
   //cookie that obtains configuration.
   //For more information refer to the Spring Session documentation.
   @Bean
   public HttpSessionIdResolver httpSessionIdResolver() {
       return HeaderHttpSessionIdResolver.xAuthToken();
   }
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.