|
@ -1,14 +1,34 @@
|
1
|
1
|
package com.ai.ipu.server.config;
|
2
|
2
|
|
|
3
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
4
|
import org.springframework.beans.factory.annotation.Value;
|
|
5
|
import org.springframework.context.ApplicationEventPublisher;
|
|
6
|
import org.springframework.context.annotation.Bean;
|
3
|
7
|
import org.springframework.context.annotation.Configuration;
|
4
|
|
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
|
|
8
|
import org.springframework.context.annotation.Primary;
|
|
9
|
import org.springframework.data.redis.core.RedisOperations;
|
|
10
|
import org.springframework.session.data.redis.RedisOperationsSessionRepository;
|
5
|
11
|
|
6
|
12
|
/**
|
7
|
13
|
* 添加@EnableRedisHttpSession来开启spring session支持
|
8
|
14
|
*/
|
|
15
|
/*设置超时方案二:设置maxInactiveIntervalInSeconds*/
|
9
|
16
|
@Configuration
|
10
|
|
// maxInactiveIntervalInSeconds 默认是1800秒过期
|
11
|
|
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)
|
|
17
|
/*@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)*/
|
12
|
18
|
public class RedisSessionConfig {
|
13
|
|
|
|
19
|
|
|
20
|
/*设置超时方案一:在application.yml中设置define.session.timeout*/
|
|
21
|
@Value("${define.session.timeout}")
|
|
22
|
private int sessionTimeout = 1800;
|
|
23
|
|
|
24
|
@Primary
|
|
25
|
@Bean
|
|
26
|
public RedisOperationsSessionRepository sessionRepository(
|
|
27
|
@Qualifier("sessionRedisTemplate")
|
|
28
|
RedisOperations<Object, Object> sessionRedisTemplate, ApplicationEventPublisher applicationEventPublisher) {
|
|
29
|
RedisOperationsSessionRepository sessionRepository = new RedisOperationsSessionRepository(sessionRedisTemplate);
|
|
30
|
sessionRepository.setApplicationEventPublisher(applicationEventPublisher);
|
|
31
|
sessionRepository.setDefaultMaxInactiveInterval(sessionTimeout);
|
|
32
|
return sessionRepository;
|
|
33
|
}
|
14
|
34
|
}
|