繁体   English   中英

spring boot application中的@SpringBootApplication是在什么阶段执行的?

[英]At what stage is @SpringBootApplication executed in spring boot application?

在编写 Spring Boot 应用程序时,我们有这样的代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

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

这意味着,它可以作为一个独立的应用程序运行(具有main方法)——到目前为止,还不错。

我的怀疑从这里开始:

main将由 JVM 调用,因此它将看到 main 方法,然后执行以下行:

 SpringApplication.run(Application.class, args);

那么,谁来检查注解@SpringBootApplication SpringBootApplication——当 JVM 执行第一行时,一旦控制进入 Spring 框架,它是否被即时解释?

这也花了我一段时间才弄清楚......

您的 class Application是“主要”class。它在 SpringApplication 上调用SpringApplication方法。

SpringApplication class 实际上启动了整个 Spring 引导过程以及所有将检查 Spring 注释和类似内容的代码。

我从来没有看过 class 背后的代码,但它一定是巨大的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM