环境:springboot2.3.10.RELEASE
session依赖:
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-jdbc</artifactId>
<version>2.1.9.RELEASE</version>
</dependency>
一开始使用yml配置超时时间,发现没有什么卵用,一直都是30分钟,
server:
servlet:
session:
timeout: PT8H
发现session在启动类的注解默认时间是1800
package org.springframework.session.jdbc.config.annotation.web.http;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({JdbcHttpSessionConfiguration.class})
@Configuration
public @interface EnableJdbcHttpSession {
int maxInactiveIntervalInSeconds() default 1800;
String tableName() default "SPRING_SESSION";
String cleanupCron() default "0 * * * * *";
}
所以最后在启动类中设置超时时间
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.session.jdbc.config.annotation.web.http.EnableJdbcHttpSession;
@EnableJpaAuditing
@EnableJdbcHttpSession(maxInactiveIntervalInSeconds = 8 * 60 * 60)
@SpringBootApplication
public class PiFuApplication {
public static void main(String[] args) {
SpringApplication.run(PiFuApplication.class, args);
}
}
在数据库中存储的效果为: