如何在没有 Redis 且没有自动配置的情况下使用 spring-boot 配置 spring-session 以使用另一个数据库存储

Sel*_*wyn 4 configuration spring-session

我想在没有 Redis 的情况下使用 spring-boot + spring-session 但使用 dynamodb 作为 sessionRepository 实现。

所有可用的示例都与 Redis 或 Hazelcast 紧密耦合,并且主要是自动配置,抽象出正在初始化的 bean。此外,我的 spring boot 配置明确定义了一个

@Bean
    public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory(Environment env) {

        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();

return factory;
}
Run Code Online (Sandbox Code Playgroud)

我还禁用了SessionAutoConfiguration.classspring-session的 spring-boot 自动配置。

所以我有几个问题。

1. 如何配置具有明确定义的 TomcatEmbeddedServletContainerFactory bean 的 spring-boot 项目以使用 spring-session?

2. 我注意到 spring-session 与 Redis 和 Hazelcast 紧密结合(仅此而已)。对于会话存储库 impl 使用像 amazon dynamodb 这样的商店是否有任何反对意见?

我在看https://github.com/spring-projects/spring-session/blob/master/spring-session/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration。爪哇

让我了解如何配置我想要实现的目标,但我一直遇到初始化异常。如果有人能指出正确的方向,我将不胜感激。

使用 spring-session 版本:1.1.0.M1

Rob*_*nch 5

我还为 spring-session 禁用了 spring-boot 自动配置 SessionAutoConfiguration.class。

如果您的类路径上没有 Redis,则不需要禁用自动配置。

如何配置具有显式定义的 TomcatEmbeddedServletContainerFactory bean 的 spring-boot 项目以使用 spring-session?

1.1.0.M1 参考讨论了如何使用@EnableSpringHttpSession做到这一点。例如:

@EnableSpringHttpSession
@Configuration
public class SpringHttpSessionConfig {
        @Bean
        public CusttomSessionRepository sessionRepository() {
                return new CusttomSessionRepository();
        }
}
Run Code Online (Sandbox Code Playgroud)

我注意到 spring-session 与 Redis 和 Hazelcast 紧密结合(仅此而已)。对于会话存储库 impl 使用像 amazon dynamodb 这样的商店是否有任何反对意见?

我们很乐意为不同的数据存储做出贡献(实际上我们正在获得对 GemFire 的支持)。问题实际上更多是关于实施它们的时间。

让我了解如何配置我想要实现的目标,但我一直遇到初始化异常。

听起来您正在尝试我提供的一些建议。但是,除非您提供有关您获得的例外情况的详细信息,否则我无法提供帮助。