侧边栏壁纸
博主头像
DJ's Blog博主等级

行动起来,活在当下

  • 累计撰写 133 篇文章
  • 累计创建 51 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

【Spring】SpringApplication

Administrator
2022-04-05 / 0 评论 / 0 点赞 / 181 阅读 / 2149 字

【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-webspring-boot-starter-webflux时,这个项目会判断为WebApplicationType.SERVLET类型

WebApplicationType.REACTIVE

  • 特性
  1. Spring WebFlux
  2. 内置reactive web server
  • 判断依据
  1. 存在DispatcherHandler
  2. 不存在DispatcherServlet
  3. 不存在ServletContainer

WebApplicationType.NONE

  • 特性
  1. 非WEB项目
  2. 不需要内嵌web server
  • 判断依据
  1. 不存在Servlet
  2. 不存在ConfigurableWebApplicationContext

WebApplicationType.SERVLET

  • 特性
  1. Spring MVC
  2. 需要内嵌web server
  • 判断依据
  1. 以上都不是
0

评论区