zoukankan      html  css  js  c++  java
  • org.springframework.context.event.AbstractApplicationEventMulticaster

    private Collection<ApplicationListener<?>> retrieveApplicationListeners(ResolvableType eventType, Class<?> sourceType, AbstractApplicationEventMulticaster.ListenerRetriever retriever) {
    LinkedList allListeners = new LinkedList();
    Object beanFactory = this.retrievalMutex;
    LinkedHashSet listeners;
    LinkedHashSet listenerBeans;
    synchronized(this.retrievalMutex) {
    listeners = new LinkedHashSet(this.defaultRetriever.applicationListeners);
    listenerBeans = new LinkedHashSet(this.defaultRetriever.applicationListenerBeans);
    }

    Iterator beanFactory1 = listeners.iterator();

    while(beanFactory1.hasNext()) {
    ApplicationListener listener = (ApplicationListener)beanFactory1.next();
    if(this.supportsEvent(listener, eventType, sourceType)) {
    if(retriever != null) {
    retriever.applicationListeners.add(listener);
    }

    allListeners.add(listener);
    }
    }

    if(!listenerBeans.isEmpty()) {
    BeanFactory beanFactory2 = this.getBeanFactory();
    Iterator listener2 = listenerBeans.iterator();

    while(listener2.hasNext()) {
    String listenerBeanName = (String)listener2.next();

    try {
    Class listenerType = beanFactory2.getType(listenerBeanName);
    if(listenerType == null || this.supportsEvent(listenerType, eventType)) {
    ApplicationListener listener1 = (ApplicationListener)beanFactory2.getBean(listenerBeanName, ApplicationListener.class);
    if(!allListeners.contains(listener1) && this.supportsEvent(listener1, eventType, sourceType)) {
    if(retriever != null) {
    retriever.applicationListenerBeans.add(listenerBeanName);
    }

    allListeners.add(listener1);
    }
    }
    } catch (NoSuchBeanDefinitionException var13) {
    ;
    }
    }
    }

    AnnotationAwareOrderComparator.sort(allListeners);
    return allListeners;
    }


    org.springframework.context.event.AbstractApplicationEventMulticaster

  • 相关阅读:
    打印从1到最大的n位数
    TCP/IP协议
    函数指针做函数参数
    Ubuntu系统扩大/home分区
    《一切都准时》一首非常有意思的小诗
    阿里云服务器编译安装Hadoop 2.7.4 伪分布式环境
    C++中的string类型占用多少个字节
    使用apt-file安装需要的软件包或者库文件
    剑指offer之【表示数值的字符串】
    剑指offer之【正则表达式】☆
  • 原文地址:https://www.cnblogs.com/softidea/p/5727242.html
Copyright © 2011-2022 走看看