如何在spring java配置中全局设置sessin timeout

时间:2018-06-02 10:04:30

标签: spring-mvc

您正在尝试为我的整个spring mvc应用程序全局设置会话超时。之前我们在web.xml中配置了会话超时,如下所示

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

我如何在spring java配置中执行此操作?

2 个答案:

答案 0 :(得分:1)

您可以实现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需要几秒钟的输入。

答案 1 :(得分:0)

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

@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();
            }
        }