今天小编和大家分享下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);
}
方式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);
执行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 类:
以上就是三种springboot启动方式的简单介绍。