zoukankan      html  css  js  c++  java
  • Tomcat中的Listener源码片段解读

      @Override
        public <T extends EventListener> void addListener(T t) {
            if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
                throw new IllegalStateException(
                        sm.getString("applicationContext.addListener.ise",
                                getContextPath()));
            }
    
            boolean match = false;
            if (t instanceof ServletContextAttributeListener ||
                    t instanceof ServletRequestListener ||
                    t instanceof ServletRequestAttributeListener ||
                    t instanceof HttpSessionIdListener ||
                    t instanceof HttpSessionAttributeListener) {
                context.addApplicationEventListener(t);
                match = true;
            }
    
            if (t instanceof HttpSessionListener
                    || (t instanceof ServletContextListener &&
                            newServletContextListenerAllowed)) {
                // Add listener directly to the list of instances rather than to
                // the list of class names.
                context.addApplicationLifecycleListener(t);
                match = true;
            }
    
            if (match) return;
    
            if (t instanceof ServletContextListener) {
                throw new IllegalArgumentException(sm.getString(
                        "applicationContext.addListener.iae.sclNotAllowed",
                        t.getClass().getName()));
            } else {
                throw new IllegalArgumentException(sm.getString(
                        "applicationContext.addListener.iae.wrongType",
                        t.getClass().getName()));
            }
        }

    这段原代码,可以看到Listener一定要继承EventListener,然后conext,到底什么是上下文,监听器是其一部分。

  • 相关阅读:
    kubernetes架构部署
    GitLab+Jenkins+Ansible
    python之字典方法
    Python之列表方法
    python之字符串方法
    Python编写从ZabbixAPI获取信息
    Django基础
    扫描某个包下所有的类,输出所有使用了特定注解的类的注解值
    日志切面和统一异常处理
    Mybatis动态排序问题
  • 原文地址:https://www.cnblogs.com/Robin008/p/10205211.html
Copyright © 2011-2022 走看看