首页 > 其他分享 >Spring Boot应用启动的方式:3种

Spring Boot应用启动的方式:3种

时间:2022-10-10 20:45:55浏览次数:58  
标签:run 启动 Spring Boot SpringApplication extends interface public

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

相关文章