Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring会话-未调用SessionDestroyeEvent_Spring_Redis_Timeout_Event Listener_Spring Session - Fatal编程技术网

Spring会话-未调用SessionDestroyeEvent

Spring会话-未调用SessionDestroyeEvent,spring,redis,timeout,event-listener,spring-session,Spring,Redis,Timeout,Event Listener,Spring Session,我有一个Spring应用程序,其中会话存储在redis中,超时时间很短(1m)。我想在会话超时后调用函数,但是不会调用SessionDestroyedEvent@EventListener SessionListener.java: import org.springframework.context.event.EventListener; import org.springframework.session.events.SessionCreatedEvent; import org.spr

我有一个Spring应用程序,其中会话存储在redis中,超时时间很短(1m)。我想在会话超时后调用函数,但是不会调用SessionDestroyedEvent@EventListener

SessionListener.java:

import org.springframework.context.event.EventListener;
import org.springframework.session.events.SessionCreatedEvent;
import org.springframework.session.events.SessionDestroyedEvent;
import org.springframework.stereotype.Component;

@Component
public class SessionListener {

    @EventListener
    public void sessionCreated(SessionCreatedEvent event) {
        System.out.println("created"); // gets called
    }

    @EventListener
    public void sessionDestroyed(SessionDestroyedEvent event) {
        System.out.println("destroyed"); // never gets called

    }

}
application.properties:

spring.session.store-type=redis
server.servlet.session.timeout=1m
注:

  • 调用SessionCreatedEvent上的eventListener
  • redis中的会话在超时后消失
  • Spring会话参考中的一节描述了如何清理会话

    从文件中:

    通过侦听Redis键空间事件的会话消息侦听器可触发
    SessionDeletedEvent
    SessionExpiredEvent
    。为了使其工作,需要为通用命令和过期事件启用Redis键空间事件