spring应用启动或停止时,需要做一些业务上的初始化操作,此时SmartLifecycle 或者ApplicationListener就派上用场了,看如何实现的。
@Configuration
public class WhiteResourceConfiguration implements SmartLifecycle {
Logger logger = LoggerFactory.getLogger(CmsWhiteResourceConfiguration.class);
/**
* 运行状态
*/
private volatile boolean running = false;
@Override
public void start() {
running = true;
logger.info("应用启动成功,你可以初始化业务资源了");
}
@Override
public void stop() {
running = false;
logger.info("应用已停止,你可以释放资源了");
}
@Override
public boolean isRunning() {
return running;
}
}
@Component
public class ApplicationEventListener implements ApplicationListener<SpringApplicationEvent> {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public void onApplicationEvent(SpringApplicationEvent event) {
if (event instanceof ApplicationReadyEvent) {
logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>应用启动成功!!!<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
} else if (event instanceof ApplicationFailedEvent) {
logger.error(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>应用启动失败!!!<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
}
}
}