从 ver3.0 中删除 store-type 时如何禁用 spring 会话

问题描述 投票:0回答:2

我注意到,为了禁用 spring 会话,可以将配置属性

spring.session.store-type
设置为
none

但是,该属性已被删除(ref)。

那么,我现在可以知道如何在新版本中禁用它吗?

spring spring-boot spring-session
2个回答
0
投票

如果您希望 Spring Boot 退出并且希望控制 Spring Session 配置,您可以使用

@Enable*HttpSession
,如 Spring Boot 文档中所述:

您可以使用

@Enable*HttpSession
(servlet)或
@Enable*WebSession
(反应式)来控制 Spring Session 的配置。 这将导致自动配置停止。 然后可以使用注释的属性而不是前面描述的配置属性来配置 Spring Session。

您可以将该注释与 Spring Boot 中的

@ConditionalOnProperty
注释结合使用。

另一个解决方案是使用 Testcontainers 支持Docker Compose 支持,这样你在开发/生产中就有相同的设置。

相关:


0
投票

这是一个为

dev
配置文件停用 Spring 会话自动配置的类的完整示例。它的工作原理是提供
SessionRepository
,如 3.x 迁移指南中所述。

如果您设置属性

server.servlet.session.persistent=true
,当 Spring Boot devtools 保存后进行热重载时,您仍然会登录。

@Configuration
@Profile("dev")
public class NoSpringSessionInDevProfileConfig {

    @Bean
    public SessionRepository<MapSession> sessionRepository() {
        return new MapSessionRepository(new HashMap<>());
    }

}

带有停用自动配置条件的 Spring Boot 代码位于

org.springframework.boot.autoconfigure.session.SessionAutoConfiguration
:

@Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = Type.REACTIVE)
@ConditionalOnMissingBean(ReactiveSessionRepository.class)
@Import({ RedisReactiveSessionConfiguration.class, MongoReactiveSessionConfiguration.class })
static class ReactiveSessionConfiguration {

}
© www.soinside.com 2019 - 2024. All rights reserved.