【Spring】SpringApplication
简介
SpringApplication是Spring Boot驱动Spring应用上下文的引导类
三种写法
默认方式
// 默认写法,默认启动tomcat的8080端口
SpringApplication.run(MicroserviceApplication.class, args);
SpringApplicationBuilder方式
// 使用Fluent API方式
new SpringApplicationBuilder(MicroserviceApplication.class)
.properties("server.port=0")// 0:随机端口
.web(WebApplicationType.NONE)// 手动设置项目类型
.run(args);
自定义SpringApplication
SpringApplication springApplication = new SpringApplication(MicroserviceApplication.class);
Map<String, Object> properties = new LinkedHashMap<>();
properties.put("server.port", 0);// 0:随机端口;
springApplication.setDefaultProperties(properties);
springApplication.setWebApplicationType(WebApplicationType.NONE);// 手动设置项目类型
springApplication.run(args);
项目类型推断
推断顺序:WebApplicationType.REACTIVE—>WebApplicationType.NONE—>WebApplicationType.SERVLET
当项目中既引入
spring-boot-starter-web
和spring-boot-starter-webflux
时,这个项目会判断为WebApplicationType.SERVLET
类型
WebApplicationType.REACTIVE
- 特性
- Spring WebFlux
- 内置reactive web server
- 判断依据
- 存在DispatcherHandler
- 不存在DispatcherServlet
- 不存在ServletContainer
WebApplicationType.NONE
- 特性
- 非WEB项目
- 不需要内嵌web server
- 判断依据
- 不存在Servlet
- 不存在ConfigurableWebApplicationContext
WebApplicationType.SERVLET
- 特性
- Spring MVC
- 需要内嵌web server
- 判断依据
- 以上都不是
评论区