springsession源码分析六之事件发布

springsession中的事件

  1. 继承图

  2. 代码分析

    @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;
        }
    }
    
  3. ApplicationContext的事件机制使用的是观察者模式.ApplicationEvent和ApplicationListenter接口实现
    ApplicationEvent 容器事件,必须由applicationContext发布
    ApplicationListenter 监听器
    ApplicationContext 是事件源
    当系统创建Spring容器、加载Spring容器时会自动触发容器事件,容器事件监听器可以监听到这些事件。
    也可以调用ApplicationContext的publishEvent()

猜你喜欢

转载自blog.csdn.net/usagoole/article/details/80639832