Java 8
Spring Boot 2.7.3
--
本文简单展示3种 Spring Boot应用启动的方式:SpringApplication类 和 SpringApplicationBuilder类中的方法。
建立 Spring Boot (版本 2.7.3)项目 webdemo,依赖 lombok、spring-boot-starter-web 包。ben发布于博客园
方式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接口层次(向上):ben发布于博客园
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 类:ben发布于博客园
ben发布于博客园
标签:run,启动,Spring,Boot,SpringApplication,extends,interface,public From: https://www.cnblogs.com/luo630/p/16776402.html