Spring Session的store-type属性是否已不可用?添加spring-session-jdbc后能否禁用会话存储?
问题解答
当添加spring-session-jdbc依赖后,仅通过spring.session.store-type=none确实无法禁用Spring Session的自动配置,原因及解决方式如下:
原因分析
spring.session.store-type是Spring Session框架提供的配置项,并非Spring Boot原生核心属性。在Spring Boot 3.x版本中,引入spring-session-jdbc依赖时,自动配置机制会直接触发JdbcHttpSessionAutoConfiguration类生效——该配置的触发条件仅检查依赖是否存在,并未将spring.session.store-type=none作为禁用判断条件,因此设置该属性无法阻止会话存储的创建。
可行的禁用方式
方式一:启动类排除自动配置类
在项目启动类上通过@SpringBootApplication的exclude参数,直接排除JDBC会话存储的自动配置类:@SpringBootApplication(exclude = JdbcHttpSessionAutoConfiguration.class) public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } }方式二:配置文件排除自动配置
在application.properties或application.yml中添加配置,指定需要排除的自动配置类:spring.autoconfigure.exclude=org.springframework.session.data.jdbc.config.annotation.web.http.JdbcHttpSessionAutoConfiguration方式三:完全禁用Spring Session自动配置
如果需要彻底关闭所有Spring Session的自动配置逻辑,可以排除上层的Session自动配置类:spring.autoconfigure.exclude=org.springframework.session.boot.autoconfigure.SessionAutoConfiguration
内容的提问来源于stack exchange,提问作者Slevin
相关产品推荐
相关产品推荐

