如何在 Spring java 配置中全局设置 sessin 超时



嗨,我正在尝试为我的整个春季 MVC 应用程序全局设置会话超时。 之前我们在 Web 中配置了会话超时.xml如下所示

<web-app ...>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>

如何在 Spring Java 配置中执行此操作?

您可以实现HttpSessionListener侦听器:

public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
System.out.println("Session creation.");
event.getSession().setMaxInactiveInterval(1000);
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
System.out.println("Session termination.");
}
}

该方法setMaxInactiveInterval输入需要几秒钟。

您也可以从属性文件中加载值

@Override
public void sessionCreated(HttpSessionEvent event) {
try {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream stream = classLoader.getResourceAsStream("bimspring.properties");
Properties properties = new Properties();
properties.load(stream);
String sessionTimeout = properties.getProperty("sessionTimeout ", "No Value Found");
event.getSession().setMaxInactiveInterval(Integer.parseInt(sessionTimeout));
} catch (IOException e) {
e.printStackTrace();
}
}

最新更新