便宜VPS主机精选
提供服务器主机评测信息

springboot启动方式有几种(3种启动方式简析)

今天小编和大家分享下3种 Spring Boot应用启动的方式:SpringApplication类 和 SpringApplicationBuilder类中的方法。建立 Spring Boot (版本 2.7.3)项目 webdemo,依赖 lombok、spring-boot-starter-web 包。

方式1:SpringApplication的静态方法run

SpringApplication类注释中有提到。

SpringApplication.run(WebdemoApplication.class, args);

// SpringApplication 类中
	public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {
		return run(new Class<?>[] { primarySource }, args);
	}

444532-20221010165224948-1469889063

方式2:先建立SpringApplication对象,配置后,再启动

SpringApplication类注释中有提到。

可配置。

// 建立对象
SpringApplication app = new SpringApplication(WebdemoApplication.class);
// 配置对象
app.setBannerMode(Mode.OFF);
// 更多配置

// 启动应用
app.run(args);

还有很多配置,可以做更多测试(下同)。

方式3:使用SpringApplicationBuilder

可配置。ben发布于博客园

// 流式编程
new SpringApplicationBuilder(WebdemoApplication.class)
		.bannerMode(Mode.OFF)
		.logStartupInfo(false)
    // 生成 SpringApplication 对象
		.build()
    // 启动应用
		.run(args);

444532-20221010165246133-318959487

执行run方法后,返回的都是ConfigurableApplicationContext 对象。

ConfigurableApplicationContext接口层次(向上):

public interface ConfigurableApplicationContext extends ApplicationContext, Lifecycle, Closeable {
}

public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,
		MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
}

public interface EnvironmentCapable {
}

public interface ListableBeanFactory extends BeanFactory {
}

public interface HierarchicalBeanFactory extends BeanFactory {
}

public interface BeanFactory {
}

public interface MessageSource {
}

public interface ApplicationEventPublisher {
}

public interface ResourcePatternResolver extends ResourceLoader {
}

public interface ResourceLoader {
}

对于 Web服务,其类型为 AnnotationConfigServletWebServerApplicationContext 类:

444532-20221010170443837-315706249

 以上就是三种springboot启动方式的简单介绍。

未经允许不得转载:便宜VPS测评 » springboot启动方式有几种(3种启动方式简析)