У меня есть приложение Spring, где сессии хранятся в Redis с коротким тайм-аутом (1 м).Я хочу вызвать функцию после истечения времени ожидания сеанса, однако 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
примечания:
- eventListener на SessionCreatedEvent вызывается
- сеансы из redis исчезают по истечении времени ожидания