【发布时间】:2017-04-11 06:46:15
【问题描述】:
我们如何以编程方式自行关闭或停止 Spring 应用程序?
我们目前正在使用ConfigurableApplicationContext#close(),是的,它会关闭应用程序,但不会关闭或停止应用程序。
从tomcat管理器来看,应用状态依然是running,所以客户端还是可以连接到web app,获取前端资源。此外,所有 servlet 似乎仍在工作并且可以接受请求。
下面的代码展示了我们目前的做法。
@Autowired
private ConfigurableApplicationContext configurableApplicationContext;
@Scheduled(cron="0 0/5 * * * ?")
private void validateLicenseExpired()
{
try
{
LicenseUtils.isLicensingPeriodValid();
} catch (LicenseInvalidException lie) {
logger.error("\t The licensing is expired", lie);
configurableApplicationContext.close();
}
}
感谢任何帮助。
【问题讨论】:
标签: spring tomcat web-applications applicationcontext application-shutdown