我正在使用Spring Boot和Spring会话。这是我的简单配置。
@EnableRedisHttpSession
public class Config {}
默认情况下,Spring Boot创建一个RedisConnectionFactory
,我在host
文件中放入了相应的port
,application.yml
信息等(为简便起见已删除)
我还添加了与安全性有关的信息(为简便起见,从此处删除了此信息。
现在是我的控制者。
@RestController
public HomeController {
@GetMapping("/hello")
public String home(HttpSession session){
// I need redis's key's expiration time. or session id's expiration time.
// how can I get this? Should I use HttpSession?
return "hello";
}
}
如何获得控制器中的会话到期时间?或者更确切地说,如何获得Redis密钥的到期时间?
您需要使用HttpSession
您可以将其作为参数添加到控制器方法中,如下所示(也有问题)。
@GetMapping("/hello")
public String home(HttpSession session){
// I need redis's key's expiration time. or session id's expiration time.
// how can I get this? Should I use HttpSession?
int ttl = session.getMaxInactiveInterval(); // this should give redis TTL
return "hello";
}
并且您可以使用HttpSession的getMaxInactiveInterval方法来获取redis的TTL值,如上面的代码所示。