类org.springframework.context.event.ApplicationContextEvent源码实例Demo

下面列出了怎么用org.springframework.context.event.ApplicationContextEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: gae   文件: GaeAppEventListener.java
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
    // 上下文初始化完成时启动vertx
    if (event instanceof ContextRefreshedEvent) {
        startHttpServer(event.getApplicationContext());

    } else if (event instanceof ContextClosedEvent) {
        // 上下文关闭时关闭vertx
        IndexIncrementLoader loader = event.getApplicationContext().getBean(IndexIncrementLoader.class);

        try {
            vertx.close();
            if (null != loader) {
                loader.shutdown();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
 
@Override
public void onApplicationEvent(ApplicationEvent event) {
	if (event instanceof ContextRefreshedEvent
			|| event instanceof ContextClosedEvent) {
		if (log.isDebugEnabled()) {
			log.debug("Context refreshed or closed [" + event + "]");
		}
		ApplicationContextEvent contextEvent = (ApplicationContextEvent) event;
		ApplicationContext context = contextEvent.getApplicationContext();
		BeanFactory beanFactory = context;
		if (context instanceof ConfigurableApplicationContext) {
			beanFactory = ((ConfigurableApplicationContext) context).getBeanFactory();
		}
		SleuthContextListener listener = CACHE.getOrDefault(beanFactory, this);
		listener.refreshed.compareAndSet(false,
				event instanceof ContextRefreshedEvent);
		listener.closed.compareAndSet(false, event instanceof ContextClosedEvent);
		CACHE.put(beanFactory, listener);
	}
}
 
源代码3 项目: astrix   文件: AstrixFrameworkBean.java
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
	if (event instanceof ContextRefreshedEvent && !servicePublisherStarted) {
		// Application initialization complete. Export astrix-services.
		if (isServer()) {
			this.astrixContext.startServicePublisher();
		}
		servicePublisherStarted = true;
	} else if (event instanceof ContextClosedEvent || event instanceof ContextStoppedEvent) {
		/*
		 * What's the difference between the "stopped" and "closed" event? In our embedded
		 * integration tests we only receive ContextClosedEvent
		 */
		destroyAstrixContext();
	}
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
  try {
    // we only want to listen for context events of the main application
    // context, not its children
    if (event.getSource().equals(applicationContext)) {
      if (event instanceof ContextRefreshedEvent && !isDeployed) {
        // deploy the process application
        afterPropertiesSet();
      } else if (event instanceof ContextClosedEvent) {
        // undeploy the process application
        destroy();
      } else {
        // ignore
      }
    }
  } catch (Exception e) {
    throw new RuntimeException(e);
  }
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
    if (processedEvents.add(event)) {
        System.out.printf("监听到 Spring 应用上下文[ ID : %s ] 事件 :%s\n", event.getApplicationContext().getId(),
                event.getClass().getSimpleName());
    }
}
 
源代码6 项目: inception   文件: GenericEventAdapter.java
@Override
public boolean accepts(Object aEvent)
{
    return aEvent instanceof ApplicationEvent && !(
            aEvent instanceof ApplicationContextEvent || 
            aEvent instanceof ServletRequestHandledEvent ||
            aEvent instanceof SessionCreationEvent ||
            aEvent instanceof SessionDestroyedEvent ||
            aEvent instanceof AbstractAuthorizationEvent ||
            aEvent instanceof AbstractAuthenticationEvent ||
            aEvent instanceof WebServerInitializedEvent);
}
 
源代码7 项目: alfresco-data-model   文件: ShutdownIndicator.java
@Override
public void onApplicationEvent(ApplicationContextEvent event)
{
    if (event instanceof ContextClosedEvent && event.getSource() == applicationContext)
    {
        synchronized (this)
        {
            shuttingDown = true;
        }
    }
}
 
源代码8 项目: tephra   文件: ContainerTest.java
@Test
public void contextRefreshed() throws Exception {
    Assert.assertEquals(2, contextRefreshedList.size());
    for (int i = 0; i < contextRefreshedList.size(); i++)
        Assert.assertEquals(i + 1, numeric.toInt(contextRefreshedList.get(i)));

    for (int i = 0; i < 2; i++) {
        ((ContainerImpl) container).onApplicationEvent(new ContextRefreshedEvent(getApplicationContext()));
        Assert.assertEquals(4 + i * 2, contextRefreshedList.size());
        for (int j = 0; j < contextRefreshedList.size(); j++)
            Assert.assertEquals(j % 2 + 1, numeric.toInt(contextRefreshedList.get(j)));
    }

    Field field = ContainerImpl.class.getDeclaredField("refreshedListeners");
    field.setAccessible(true);
    Object object = field.get(container);
    field.set(container, Optional.empty());
    for (int i = 0; i < 2; i++) {
        ((ContainerImpl) container).onApplicationEvent(new ContextRefreshedEvent(getApplicationContext()));
        Assert.assertEquals(6, contextRefreshedList.size());
        for (int j = 0; j < contextRefreshedList.size(); j++)
            Assert.assertEquals(j % 2 + 1, numeric.toInt(contextRefreshedList.get(j)));
    }

    ((ContainerImpl) container).onApplicationEvent(new ApplicationContextEvent(getApplicationContext()) {
    });
    Assert.assertEquals(6, contextRefreshedList.size());
    for (int i = 0; i < contextRefreshedList.size(); i++)
        Assert.assertEquals(i % 2 + 1, numeric.toInt(contextRefreshedList.get(i)));

    field.set(container, object);
}
 
源代码9 项目: tephra   文件: ContainerTest.java
@Test
public void contextClosed() throws Exception {
    for (int i = 0; i < 2; i++) {
        ((ContainerImpl) container).onApplicationEvent(new ContextClosedEvent(getApplicationContext()));
        Assert.assertEquals(2 + i * 2, contextClosedList.size());
        for (int j = 0; j < contextRefreshedList.size(); j++)
            Assert.assertEquals(j % 2 + 1, numeric.toInt(contextClosedList.get(j)));
    }

    Field field = ContainerImpl.class.getDeclaredField("closedListeners");
    field.setAccessible(true);
    Object object = field.get(container);
    field.set(container, Optional.empty());
    for (int i = 0; i < 2; i++) {
        ((ContainerImpl) container).onApplicationEvent(new ContextClosedEvent(getApplicationContext()));
        Assert.assertEquals(4, contextClosedList.size());
        for (int j = 0; j < contextClosedList.size(); j++)
            Assert.assertEquals(j % 2 + 1, numeric.toInt(contextClosedList.get(j)));
    }

    ((ContainerImpl) container).onApplicationEvent(new ApplicationContextEvent(getApplicationContext()) {
    });
    Assert.assertEquals(4, contextClosedList.size());
    for (int i = 0; i < contextClosedList.size(); i++)
        Assert.assertEquals(i % 2 + 1, numeric.toInt(contextClosedList.get(i)));

    field.set(container, object);
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
	if (event instanceof ContextRefreshedEvent && event.getApplicationContext().getParent() == null) {
		startMuleContext(event.getApplicationContext());
	} else if (event instanceof ContextClosedEvent) {
		stopMuleContext();
	}
}
 
源代码11 项目: cougar   文件: JMXControl.java
/**
 * Return JMXControl bean from the ApplicationContext *if* the given event is
 * an {@link ApplicationContextEvent} (or null otherwise).
 * <p>
 * A utility method wrapping one way in which we'd call
 * {@link #getFromContext(ApplicationContext)}.
 */
public static JMXControl getFromEvent(ApplicationEvent event) {
	if (event instanceof ApplicationContextEvent) {
		return getFromContext(((ApplicationContextEvent) event).getApplicationContext());
	}
	else {
		return null;
	}
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
}
 
源代码14 项目: plumemo   文件: InitSystemConfig.java
@Override
public void onApplicationEvent(ApplicationContextEvent applicationContextEvent) {
    init();
}
 
源代码15 项目: plumemo   文件: InitDatabaseConfig.java
@Override
public void onApplicationEvent(final ApplicationContextEvent applicationContextEvent) {
    init();
}
 
源代码16 项目: plumemo   文件: InitFileConfig.java
@Override
public void onApplicationEvent(final ApplicationContextEvent event) {
    initFile();
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
}
 
public final void onApplicationEvent(ApplicationEvent event) {
    if (isOriginalEventSource(event) && event instanceof ApplicationContextEvent) {
        onApplicationContextEvent((ApplicationContextEvent) event);
    }
}
 
源代码20 项目: alfresco-repository   文件: ThumbnailRegistry.java
public void onApplicationEvent(ApplicationContextEvent event)
{
    lifecycle.onApplicationEvent(event);
}
 
源代码21 项目: alfresco-repository   文件: CMISConnector.java
public void onApplicationEvent(ApplicationContextEvent event)
{
    lifecycle.onApplicationEvent(event);
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
}
 
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
}
 
/**
 * 单一 {@link ApplicationContextEvent} 参数监听 {@link ContextRefreshedEvent} 和 {@link ContextClosedEvent} 事件
 *
 * @param event {@link ApplicationContextEvent}
 */
@EventListener({ContextRefreshedEvent.class, ContextClosedEvent.class})
public void onApplicationContextEvent(ApplicationContextEvent event) {
    System.out.println("onApplicationContextEvent : " + event.getClass().getSimpleName());
}
 
/**
 * The subclass overrides this method to handle {@link ApplicationContextEvent}
 * @param event {@link ApplicationContextEvent}
 */
protected abstract void onApplicationContextEvent(ApplicationContextEvent event);
 
 同包方法