【发布时间】:2018-08-23 23:02:48
【问题描述】:
当我在 Intellij IDEA 中调试我的 spring boot 应用程序时,我发现我的 spring 应用程序的 main 方法将返回。当main方法返回表示进程已经结束,spring boot应用怎么还能接受请求呢?
【问题讨论】:
-
可能是因为它启动了一些让 JVM 保持活动状态的后台线程...?
-
@ErnestKiwele 你知道应用程序在哪里启动那些后台线程吗?
-
当你启动你的应用程序时,web server/container 由 spring-boot 启动。并且容器具有线程池和许多机制来保持应用程序运行,确切地说是等待传入的请求......您需要在文档中找到如何停止 Spring Boot 应用程序。
-
@ErnestKiwele 我只是想知道 Spring Boot 应用程序是如何工作的,因为在其他 Web 框架中,例如。 Flask,NodeJs Express,当我们运行app.Run()时,应用程序会阻塞接受请求,这很容易理解,因为三是一个事件循环或者监听器来监听和接受连接,那么应用程序就可以工作了。但是,看来spring boot应用永远不会阻塞监听和接受连接。
标签: java spring spring-mvc spring-boot