第 2 章 使用 Spring Session 外部调整会话
将 Spring 应用程序的会话数据存储在 Data Grid 缓存中,并独立于容器。
2.1. 使用 Spring Session 外部调整会话 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用 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实例。-
嵌入式缓存:
Spring embeddedCacheManagerFactoryBean -
远程缓存:
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();
}
}