当前位置: 首页 > 知识库问答 >
问题:

为什么spring boot应用程序的主方法已经返回,但应用程序仍然可以接受请求?[关闭]

赵浩邈
2023-03-14

当我在Intellij IDEA中调试我的Spring Boot应用程序时,我发现我的spring应用程序的主要方法将返回。当main方法返回时,这意味着流程已经完成,那么spring boot应用程序还能接受请求吗?

共有1个答案

孟正志
2023-03-14

当您包含web-starter作为应用程序的依赖项时,Spring Boot知道它必须启动一个嵌入的servlet容器(web服务器),除非您明确告诉他不要这样做:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

那么当您这样做时:

@Controller
@EnableAutoConfiguration
public class SampleController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}

springapplication.run(sampleController.class,args);计算包含的类路径依赖项并检测web依赖项。然后它知道您正在配置一个web应用程序,并实例化servlet容器,该容器一直接受请求,直到您显式地终止它。

    null
    null
 类似资料:
  • 我有一个带有以下启动代码的Spring Boot应用程序。执行器endpoint被映射,并且bean被移除。我看到执行器endpoint注册,然后豆移除。通过SO线程,消息是无害的。但是当我试图到达任何执行器的终点时,我会得到错误。我不确定我应该进一步研究什么来使执行器工作。我正在附上我提到的所有日志片段。 我用Maven设置了项目: MavenSpring执行器部分 最终我在日志中看到bean被

  • 跟着https://developer.android.com/training/app-links/verify-site-associations.html并设置应用程序链接以打开来自谷歌的应用程序。根据这个链接 assetlinks.json文件从未正确部署到。NET应用程序。然而,当我删除assetlinks.json应用程序仍然对应用程序开放。甚至需要资产链接文件吗?还是这只是应用程序的

  • 这是我使用SpringBoot的第一天,我试图理解体系结构,因此我开始构建一个hello world应用程序: 在我的pom.xml中,在maven-shade-plugin下,我将mainClass声明如下: 文件目标是src/main/java/com/demo/helloworld.java,该文件中的代码是: 我错过了什么?

  • 我正在EclipseIDE中用Yii2开发一个项目。我无意中删除了vendor/yiisoft下的Yii2文件夹。但我的应用程序仍然像charme一样工作,它不会抛出任何异常。我使用Composer安装http://www.yiiframework.com/extension/yii2-improved-basic-template/.文件供应商/composer/autoload_psr4。ph

  • 这并不困难,但它让我质疑spring auth服务器是最好的选择,还是我应该使用Keycloak?