SpringBoot启动过程深度解析——WebApplicationType
发布日期:2023-09-20 01:40:29 浏览次数:4 分类:技术文章

本文共 1473 字,大约阅读时间需要 4 分钟。

SpringBoot启动过程深度解析——WebApplicationType


WebApplicationType是Web应用程序类型的枚举,包含以下类型:

  • NONE:应用程序不应作为 Web 应用程序运行,也不应启动嵌入式 Web 服务器
  • SERVLET:应用程序应作为基于 servlet 的 Web 应用程序运行,并应启动嵌入式 servlet Web 服务器
  • REACTIVE:应用程序应作为反应式 Web 应用程序运行,并应启动嵌入式反应式 Web 服务器

WebApplicationType的判断逻辑

public enum WebApplicationType {
static WebApplicationType deduceFromClasspath() {
/** WebApplicationType.REACTIVE: 需要此类: org.springframework.web.reactive.DispatcherHandler 并且不含这两类: org.glassfish.jersey.servlet.ServletContainer org.springframework.web.servlet.DispatcherServlet WebApplicationType.NONE 不含以下其中一个类: 【tomcat包】javax.servlet.Servlet 【spring-web包】org.springframework.web.context.ConfigurableWebApplicationContext WebApplicationType.SERVLET 需要包含这两个类: 【tomcat包】javax.servlet.Servlet 【spring-web包】org.springframework.web.context.ConfigurableWebApplicationContext **/ if (ClassUtils.isPresent(WEBFLUX_INDICATOR_CLASS, null) && !ClassUtils.isPresent(WEBMVC_INDICATOR_CLASS, null) && !ClassUtils.isPresent(JERSEY_INDICATOR_CLASS, null)) {
return WebApplicationType.REACTIVE; } for (String className : SERVLET_INDICATOR_CLASSES) {
if (!ClassUtils.isPresent(className, null)) {
return WebApplicationType.NONE; } } return WebApplicationType.SERVLET; }}

转载地址:https://blog.csdn.net/weixin_39072857/article/details/128780941 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SpringBoot启动过程深度解析——概述
下一篇:SpringBoot启动过程深度解析——Spring声明式事务@Transactional启动过程与事务执行过程解析

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年08月19日 08时13分23秒