springsession中的事件
继承图
代码分析
@SuppressWarnings("serial") public abstract class AbstractSessionEvent extends ApplicationEvent { private final String sessionId; private final Session session; protected AbstractSessionEvent(Object source, String sessionId) { super(source); this.sessionId = sessionId; this.session = null; } AbstractSessionEvent(Object source, Session session) { super(source); this.session = session; this.sessionId = session.getId(); } public <S extends Session> S getSession() { return (S) this.session; } public String getSessionId() { return this.sessionId; } }
- ApplicationContext的事件机制使用的是观察者模式.ApplicationEvent和ApplicationListenter接口实现
ApplicationEvent 容器事件,必须由applicationContext发布
ApplicationListenter 监听器
ApplicationContext 是事件源
当系统创建Spring容器、加载Spring容器时会自动触发容器事件,容器事件监听器可以监听到这些事件。
也可以调用ApplicationContext的publishEvent()