在spring-boot-smoke-test-web-static项目中通过阅读启动类可以看到如下代码:
@SpringBootApplication public class SampleWebStaticApplication extends SpringBootServletInitializer { protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(SampleWebStaticApplication.class); } public static void main(String[] args) { SpringApplication.run(SampleWebStaticApplication.class, args); } }
在这段代码中可以看到main方法中核心启动代码是SpringApplication.run,这段代码就是本节需要详细分析的方法。追踪run方法会看到下面这段代码:
public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { return run(new Class<?>[] { primarySource }, args); }
这段代码需要调用run方法,因此进一步追踪源代码,具体执行代码如下:
public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return new SpringApplication(primarySources).run(args); }
在这段代码中我们主要关注以下两个方法参数:
(1)primarySources表示主要的启动类;
(2)args表示Java程序启动命令参数。