下面列出了怎么用org.springframework.context.event.ContextStoppedEvent的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ApplicationEnvironmentPreparedEvent) {
LOGGER.debug("初始化环境变量");
} else if (event instanceof ApplicationPreparedEvent) {
LOGGER.debug("初始化完成");
} else if (event instanceof ContextRefreshedEvent) {
LOGGER.debug("应用刷新");
} else if (event instanceof ApplicationReadyEvent) {
LOGGER.debug("应用已启动完成");
} else if (event instanceof ContextStartedEvent) {
LOGGER.debug("应用启动,需要在代码动态添加监听器才可捕获");
} else if (event instanceof ContextStoppedEvent) {
LOGGER.debug("应用停止");
} else if (event instanceof ContextClosedEvent) {
ApplicationContext applicationContext = ((ContextClosedEvent) event).getApplicationContext();
grpcClient = applicationContext.getBean(GrpcClient.class);
grpcClient.close();
LOGGER.debug("应用关闭");
}
}
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ApplicationEnvironmentPreparedEvent) {
LOG.debug("初始化环境变量");
} else if (event instanceof ApplicationPreparedEvent) {
LOG.debug("初始化完成");
LOG.debug("初始GameData策划数据");
ConfigManager.loadGameData(this.configPath);
} else if (event instanceof ContextRefreshedEvent) {
LOG.debug("应用刷新");
} else if (event instanceof ApplicationReadyEvent) {
LOG.debug("应用已启动完成");
} else if (event instanceof ContextStartedEvent) {
LOG.debug("应用启动,需要在代码动态添加监听器才可捕获");
} else if (event instanceof ContextStoppedEvent) {
LOG.debug("应用停止");
} else if (event instanceof ContextClosedEvent) {
ApplicationContext context = ((ContextClosedEvent) event).getApplicationContext();
rpcClient = context.getBean(RpcClient.class);
rpcClient.close();
LOG.error("应用关闭");
} else {
}
}
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ApplicationEnvironmentPreparedEvent) {
LOG.debug("初始化环境变量");
} else if (event instanceof ApplicationPreparedEvent) {
LOG.debug("初始化完成");
LOG.debug("初始GameData策划数据");
String path = ApplicationEventListener.class.getResource("/gamedata").getFile();
ConfigManager.loadGameData(path);
} else if (event instanceof ContextRefreshedEvent) {
LOG.debug("应用刷新");
} else if (event instanceof ApplicationReadyEvent) {
LOG.debug("应用已启动完成");
} else if (event instanceof ContextStartedEvent) {
LOG.debug("应用启动,需要在代码动态添加监听器才可捕获");
} else if (event instanceof ContextStoppedEvent) {
LOG.debug("应用停止");
} else if (event instanceof ContextClosedEvent) {
ApplicationContext applicationContext = ((ContextClosedEvent) event).getApplicationContext();
grpcClient = applicationContext.getBean(GrpcClient.class);
grpcClient.close();
LOG.debug("应用关闭");
}
}
/**
* 应用程序启动过程监听
*
* @time 2018年4月10日 下午5:05:33
* @version V1.0
* @param event
*/
@Override
public void onApplicationEvent(ApplicationEvent event) {
// 在这里可以监听到Spring Boot的生命周期
if (event instanceof ApplicationEnvironmentPreparedEvent) { // 初始化环境变量
log.debug("初始化环境变量");
} else if (event instanceof ApplicationPreparedEvent) { // 初始化完成
log.debug("初始化环境变量完成");
} else if (event instanceof ContextRefreshedEvent) { // 应用刷新,当ApplicationContext初始化或者刷新时触发该事件。
log.debug("应用刷新");
} else if (event instanceof ApplicationReadyEvent) {// 应用已启动完成
log.debug("应用已启动完成");
} else if (event instanceof ContextStartedEvent) { // 应用启动,Spring2.5新增的事件,当容器调用ConfigurableApplicationContext的
// Start()方法开始/重新开始容器时触发该事件。
log.debug("应用启动");
} else if (event instanceof ContextStoppedEvent) { // 应用停止,Spring2.5新增的事件,当容器调用ConfigurableApplicationContext
// 的Stop()方法停止容器时触发该事件。
log.debug("应用停止");
} else if (event instanceof ContextClosedEvent) { // 应用关闭,当ApplicationContext被关闭时触发该事件。容器被关闭时,其管理的所有
// 单例Bean都被销毁。
log.debug("应用关闭");
} else {
}
}
@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(ApplicationEvent event) {
if ((event instanceof ContextClosedEvent) || (event instanceof ContextStoppedEvent)) {
providerConfigContainer.unExportAllProviderConfig();
serverConfigContainer.closeAllServer();
}
}
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ApplicationReadyEvent) {
Runnable startupHook = getPlatformField(Runnable.class, "startupHook");
if (startupHook != null) {
startupHook.run();
}
} else if (event instanceof ContextStoppedEvent) {
Runnable shutdownHook = getPlatformField(Runnable.class, "shutdownHook");
if (shutdownHook != null) {
shutdownHook.run();
}
}
}
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ContextStartedEvent) {
this.startStandAlone();
} else if (event instanceof ContextClosedEvent || event instanceof ContextStoppedEvent) {
this.stopStandAlone();
}
}
@Override
public void onApplicationEvent(ApplicationEvent applicationEvent) {
if (applicationEvent instanceof ContextRefreshedEvent) {
doAdditionalContextStartedLogic();
} else if (applicationEvent instanceof ContextStoppedEvent) {
doAdditionalContextStoppedLogic();
}
}
@Override
public void stop() {
getLifecycleProcessor().stop();
publishEvent(new ContextStoppedEvent(this));
}
@Override
public void onApplicationEvent(ContextStoppedEvent event) {
System.err.println("============Stop 执行=========== ");
}
@Override
public void stop() {
getLifecycleProcessor().stop();
publishEvent(new ContextStoppedEvent(this));
}
@EventListener(ContextStoppedEvent.class)
public void onApplicationEvent(ContextStoppedEvent ev) {
close();
}
@EventListener({ContextStoppedEvent.class, ContextClosedEvent.class})
public void cleanContext() {
if (localstackDocker != null) {
localstackDocker.stop();
}
}
@Override
public void onApplicationEvent(ContextStoppedEvent event) {
NDCUtils.push();
printKeyLoadMessage();
}
@Override
public void stop() {
getLifecycleProcessor().stop();
publishEvent(new ContextStoppedEvent(this));
}
@Override
public void stop() {
getLifecycleProcessor().stop();
publishEvent(new ContextStoppedEvent(this));
}
@Override
public boolean supportsEventType(Class<? extends ApplicationEvent> eventType) {
return ApplicationReadyEvent.class.equals(eventType) || ContextStoppedEvent.class.equals(eventType);
}
@Order(1)
@EventListener(classes = { ContextStartedEvent.class, ContextStoppedEvent.class })
public void handleMultipleEvents() {
System.out.println("Multi-event listener invoked");
}