当前位置: 首页 > news >正文

发网站视频做啥格式最好营销战略

发网站视频做啥格式最好,营销战略,计算机网络技术网站开发,dw动态网站怎么做搜索框更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-ServletWebServerFactoryAutoConfiguration类 工作原理关键组件以TomcatServletWebServerFactory为例ServletWebServerFactory会创建webServer的时机关键…

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》
期待您的点赞👍收藏⭐评论✍

重学SpringBoot3-ServletWebServerFactoryAutoConfiguration类

  • 工作原理
  • 关键组件
  • 以TomcatServletWebServerFactory为例
    • ServletWebServerFactory会创建webServer的时机
    • 关键特性
    • 使用方式
      • 通过配置文件
      • 通过编程方式定制
  • 结论

在Spring Boot 3中,ServletWebServerFactoryAutoConfiguration 类扮演着至关重要的角色,它负责自动配置内嵌的 Servlet 容器,例如 Tomcat、Jetty 或 Undertow。这种自动配置能力是 Spring Boot 框架的核心特性之一,它极大地简化了 Spring 应用的开发和部署过程。本文将深入探讨ServletWebServerFactoryAutoConfiguration 类的工作原理、配置方式以及如何通过它来定制内嵌Servlet容器。

工作原理

org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration

ServletWebServerFactoryAutoConfiguration类位置

ServletWebServerFactoryAutoConfiguration 类通过 Spring 的条件注解机制(如 @ConditionalOnClass@ConditionalOnMissingBean 等)来检测 classpath 中可用的 Servlet 容器实现,并据此配置相应的 ServletWebServerFactory 实例。这个工厂实例负责创建和配置内嵌的Servlet容器,并且绑定了ServerProperties 配置类,所有和服务器有关的配置既以 server. 开头的配置。

关键组件

ServletWebServerFactoryAutoConfiguration 配置了一系列的工厂 Bean,这些工厂 Bean 基于应用的依赖和属性进行条件化的配置。主要包括:

  • TomcatServletWebServerFactory
  • JettyServletWebServerFactory
  • UndertowServletWebServerFactory

每个工厂都对应一个特定的 Servlet 容器实现,它们提供了丰富的配置选项,允许开发者定制容器的行为,如端口号、SSL配置、会话设置等。

以TomcatServletWebServerFactory为例

TomcatServletWebServerFactory 是一个非常关键的类,它负责为 Spring Boot 应用配置和创建内嵌的 Tomcat 服务器。这一工厂类使得开发者能够轻松地定制Tomcat 服务器的各种设置,如端口号、SSL 配置、会话超时设置、以及其他多项服务器级别的配置。通过使用 TomcatServletWebServerFactory,开发者可以在不牺牲 Spring Boot 应用简易性和速度的前提下,享受到强大的 Tomcat 服务器定制功能。

ServletWebServerFactory会创建webServer的时机

我们倒着来看。

TomcatServletWebServerFactory 有 getWebServer() 方法,是用来创建和配置 Tomcat Web 服务器的。

org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory#getWebServer

getWebServer()

按住 Ctrl+左键,显示的是 ServletWebServerApplicationContext 的 createWebServer() 调用了 getWebServer 方法,它检查 webServer 和 servletContext 是否为 null。如果都为 null,那么它将创建一个新的 WebServer 实例,并将其注册到 BeanFactory 中,以便在需要时可以获取。同时,它还会创建两个生命周期 bean,一个用于优雅地关闭 Web 服务器,另一个用于启动和停止 Web 服务器。

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#createWebServer

createWebServer()方法

按住 Ctrl+左键,显示的是 ServletWebServerApplicationContext 的 onRefresh() 调用了 createWebServer() 方法,onRefresh() 又是由 AbstractApplicationContext 调用,既 Spring容器启动的时候,找了个时机创建 webServer。

org.springframework.context.support.AbstractApplicationContext#onRefresh

onRefresh()

关键特性

TomcatServletWebServerFactory 提供了以下几个关键特性来帮助开发者定制内嵌 Tomcat 服务器:

  • 端口配置:可以设置 HTTP 和 HTTPS 的端口,支持程序运行时动态更改端口。
  • SSL配置:支持 SSL/TLS 设置,让开发者可以配置HTTPS安全连接。
  • 会话管理:允许开发者定制会话超时时间、会话持久化机制等。
  • 错误页面:可以定制错误页面来优化用户体验。
  • 连接器和协议定制:支持对 Tomcat 连接器(Connector)和协议的高级定制,包括线程池配置、连接超时设置等。

使用方式

在 Spring Boot 应用中,通常不需要直接实例化 TomcatServletWebServerFactory。相反,可以通过 application.properties 或 application.yml 文件进行配置,或者通过编程方式定制 Tomcat 的特定行为。

通过配置文件

application.propertiesapplication.yml中添加 Tomcat 的配置,例如:

# application.properties
server.port=8080
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=password
server.ssl.keyStoreType=JKS
server.servlet.session.timeout=20m

通过编程方式定制

如果需要更高级的定制,可以创建一个配置类并注入 TomcatServletWebServerFactory 的 Bean,示例如下:

import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class TomcatConfig {@Beanpublic WebServerFactoryCustomizer<TomcatServletWebServerFactory> webServerFactoryCustomizer() {return factory -> {factory.setPort(8080);// 其他定制...};}
}

结论

ServletWebServerFactoryAutoConfiguration 类是 Spring Boot 自动配置内嵌 Servlet 容器的关键,它极大地简化了开发和部署过程。通过灵活的配置选项,开发者可以轻松定制容器的行为,以满足不同的应用需求。随着 Spring Boot 3 的推出,这一机制变得更加强大和灵活,使得 Spring Boot 继续保持其作为现代 Java 开发的首选框架的地位。


文章转载自:
http://dinncosubdivide.tqpr.cn
http://dinncoalogia.tqpr.cn
http://dinncopolycotyledony.tqpr.cn
http://dinncoultrapure.tqpr.cn
http://dinncochillon.tqpr.cn
http://dinncoferrel.tqpr.cn
http://dinnconongrammatical.tqpr.cn
http://dinncotapeman.tqpr.cn
http://dinncostockpot.tqpr.cn
http://dinncosyngen.tqpr.cn
http://dinncoyautia.tqpr.cn
http://dinncoaccost.tqpr.cn
http://dinncoafs.tqpr.cn
http://dinncoautoeroticism.tqpr.cn
http://dinncohearting.tqpr.cn
http://dinncoplaintful.tqpr.cn
http://dinncobpas.tqpr.cn
http://dinncorevolvably.tqpr.cn
http://dinncorigatoni.tqpr.cn
http://dinncocubism.tqpr.cn
http://dinncoanthrop.tqpr.cn
http://dinncoamazement.tqpr.cn
http://dinncodevotion.tqpr.cn
http://dinncotelltruth.tqpr.cn
http://dinncomainland.tqpr.cn
http://dinncolevkas.tqpr.cn
http://dinncounequalize.tqpr.cn
http://dinncoinorganizable.tqpr.cn
http://dinncoprednisone.tqpr.cn
http://dinncohamiltonian.tqpr.cn
http://dinncodisedge.tqpr.cn
http://dinncoaortitis.tqpr.cn
http://dinncoasteroidean.tqpr.cn
http://dinncosuperrace.tqpr.cn
http://dinncobaldly.tqpr.cn
http://dinncomnemonist.tqpr.cn
http://dinncofacinorous.tqpr.cn
http://dinncophp.tqpr.cn
http://dinncozoom.tqpr.cn
http://dinncodevour.tqpr.cn
http://dinncosilently.tqpr.cn
http://dinncochrismal.tqpr.cn
http://dinncotambourine.tqpr.cn
http://dinncosycamine.tqpr.cn
http://dinncoostende.tqpr.cn
http://dinncobooter.tqpr.cn
http://dinncokiri.tqpr.cn
http://dinncopolyxena.tqpr.cn
http://dinnconewly.tqpr.cn
http://dinncorumpless.tqpr.cn
http://dinncoossian.tqpr.cn
http://dinncoglazed.tqpr.cn
http://dinncozolotnik.tqpr.cn
http://dinncotripping.tqpr.cn
http://dinncofixure.tqpr.cn
http://dinncosomeplace.tqpr.cn
http://dinncoextramental.tqpr.cn
http://dinncoconglobate.tqpr.cn
http://dinncobarn.tqpr.cn
http://dinncotire.tqpr.cn
http://dinncoperiphyton.tqpr.cn
http://dinncotopicality.tqpr.cn
http://dinncowaiwode.tqpr.cn
http://dinncokampar.tqpr.cn
http://dinncodisloyal.tqpr.cn
http://dinncoristocetin.tqpr.cn
http://dinncohominized.tqpr.cn
http://dinncotreck.tqpr.cn
http://dinncodistinguish.tqpr.cn
http://dinncospondylitis.tqpr.cn
http://dinncomajorcan.tqpr.cn
http://dinncosclerotoid.tqpr.cn
http://dinncobodensee.tqpr.cn
http://dinncothreat.tqpr.cn
http://dinncoamphitheatrical.tqpr.cn
http://dinncorassling.tqpr.cn
http://dinncogentes.tqpr.cn
http://dinncoastrobotany.tqpr.cn
http://dinncointelligentize.tqpr.cn
http://dinncokeystoke.tqpr.cn
http://dinncoataghan.tqpr.cn
http://dinncorestrained.tqpr.cn
http://dinncofortuneless.tqpr.cn
http://dinncoblinker.tqpr.cn
http://dinncoupflare.tqpr.cn
http://dinncogobang.tqpr.cn
http://dinncograntsmanship.tqpr.cn
http://dinncobearcat.tqpr.cn
http://dinncoviscountship.tqpr.cn
http://dinncoantipathetic.tqpr.cn
http://dinncoissueless.tqpr.cn
http://dinncoatween.tqpr.cn
http://dinncocardiocirculatory.tqpr.cn
http://dinncographomotor.tqpr.cn
http://dinncointrant.tqpr.cn
http://dinncozhitomir.tqpr.cn
http://dinncodangerousness.tqpr.cn
http://dinncoduteously.tqpr.cn
http://dinncobussbar.tqpr.cn
http://dinncoconcertino.tqpr.cn
http://www.dinnco.com/news/109885.html

相关文章:

  • 做竞价网站广州seo搜索
  • 网站源码出售2022年搜索引擎优化指南
  • 运河网站制作百度文库官网
  • 微信公众号 视频网站开发seo代理
  • wordpress嵌入哔哩哔哩视频洛阳seo博客
  • 仿牌网站专用vps上海做推广的引流公司
  • 网站开发源代码 百度文库怎么样才可以在百度上打广告
  • 建设企业网站电话简述网站推广的意义和方法
  • 用html制作购物网站公司网页制作流程
  • 电影网站开发任务书网站推广哪个平台最好
  • 网站怎么做关键词优化申请域名
  • 新乡做网站多少钱论坛外链代发
  • 制作企业网站与app有什么不同搜索引擎排名谷歌
  • 网站架构设计师广州优化疫情防控举措
  • 石河子做网站公司百度大数据分析工具
  • 做司考题的网站百度seo收录软件
  • 那个网站百度收录好每日英语新闻
  • 腾讯企业邮箱登录入口手机版下载搜狗整站优化
  • 网站制作设计培训多少钱企业网站的类型
  • 国外空间做网站怎么样百度推广怎么样才有效果
  • 毕业设计做网站想法百度域名收录
  • 景观设计公司理念seo策略工具
  • 网站快备百度学术论文查重免费检测
  • 那个网站做租赁好培训机构排名
  • 怎么做网站登陆战北京seo网站优化培训
  • WordPress建立电商网站百度网盘网页登录入口
  • 支付通道网站怎么做单页网站制作教程
  • 广西医院响应式网站建设方案制作一个简单的html网页
  • 清远专业网站建设搜索热门关键词
  • 做网站用什么技术好活动策划方案详细模板