我们有一个不使用 Spring 会话的用例,即即使 Spring Session 和 Spring boot 位于类路径中,也没有
@EnableRedisHttpSession
注释。我们过去通过使用自定义属性 spring.session.enabled
并在具有 @ConditionalOnProperty
注释的类上添加 @EnableRedisHttpSession
来实现此目的。这在 Spring boot 1.2.7 中有效。然而,在 Spring Boot 1.3.0 中, SessionAutoConfiguration
类上有 @EnableRedisHttpSession
注解。
有没有办法禁止使用该类?
要禁用 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
{
...
}
我有同样的问题,通过评论,我得到了答案,所以我把它放在这里,这样问题就被标记为已回答:
您可以通过在
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