第2章 Spring セッションでのセッションの外部化
Spring アプリケーションのセッションデータを Data Grid キャッシュに、コンテナーとは独立して保存します。
2.1. Spring セッションでのセッションの外部化 リンクのコピーリンクがクリップボードにコピーされました!
Spring Session API を使用して、セッションデータを Data Grid に外部化します。
手順
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>
-
埋め込みキャッシュ:
適切な
FactoryBeanを指定して、CacheManagerインスタンスを公開します。-
埋め込みキャッシュ:
SpringEmbeddedCacheManagerFactoryBean -
リモートキャッシュ:
SpringRemoteCacheManagerFactoryBean
-
埋め込みキャッシュ:
適切なアノテーションで 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();
}
}