Spring Boot 和 Spring Session,在 SessionAutoConfigure.java 中禁用自动配置

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

我们有一个不使用 Spring 会话的用例,即即使 Spring Session 和 Spring boot 位于类路径中,也没有

@EnableRedisHttpSession
注释。我们过去通过使用自定义属性
spring.session.enabled
并在具有
@ConditionalOnProperty
注释的类上添加
@EnableRedisHttpSession
来实现此目的。这在 Spring boot 1.2.7 中有效。然而,在 Spring Boot 1.3.0 中,
SessionAutoConfiguration
类上有
@EnableRedisHttpSession
注解。

有没有办法禁止使用该类?

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

要禁用 Spring Session 的 Spring Boot 自动配置:

@SpringBootApplication(exclude = {SessionAutoConfiguration.class})
public class Application
{
 ...
}

然后,根据属性启用 Spring Session(例如,您可能希望在开发时禁用它,但在生产中启用它):

@Configuration
@ConditionalOnProperty(value = "spring.session.enabled", havingValue = "true", matchIfMissing = false)
@EnableRedisHttpSession
public class HttpSessionConfig
{
 ...
}

我有同样的问题,通过评论,我得到了答案,所以我把它放在这里,这样问题就被标记为已回答:


0
投票

您可以通过在

application.properties
中设置此属性或通过在 Spring 中设置属性的任何其他各种方式来禁用 Spring Session:

spring.session.store-type=none

https://docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/html/boot-features-session.html

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