嵌入式 web 容器:应用中内置服务器(tomcat),不用在外部配置服务器了
SpringBoot 项目启动,发现是 web 应用,引入 web 场景包 ----- 如:Tomcat
web 应用创建一个 web 版的 IOC 容器 ServletWebServerApplicationContext
ServletWebServerApplicationContext 启动的时候寻找 ServletWebServerFactory (Servlet 的 web 服务器工厂,用于生产 Servlet 服务器)
ServletWebServerFactory 底层默认有很多 Web 服务器工厂

底层会自动配置好 ,自动配置类 ServletWebServerFactoryAutoConfiguration
ServletWebServerFactoryAutoConfiguration 导入 ServletWebServerFactoryConfiguration 工厂配置类
ServletWebServerFactoryConfiguration.class

动态判断系统中导入了那个web服务器配置包
如果导入 Tomcat 依赖,会自动放一个 Tomcat 服务器工厂, TomcatServletWebServerFactory 为我们创建出 Tomcat 服务器工厂
Tomcat 底层支持如下服务器
进销存产品库存管理系统完全基于 WEB 的综合应用解决方案, 真正的 B/S 模式, 使用asp开发, 不需任何安装, 只需一个浏览器, 企业领导, 业务人员, 操作人员可以在不同时间, 地点, 并且可动态, 及时反映企业业务的方方面面. 产品入库,入库查询 库存管理,库存调拨 产品出库,出库查询 统计报表 会员管理 员工管理 工资管理 单位管理 仓库管理 凭证管理 资产管理 流水账管理 产品分类
1689

@Override
public WebServer getWebServer(ServletContextInitializer... initializers) {
if (this.disableMBeanRegistry) {
Registry.disableRegistry();
}
Tomcat tomcat = new Tomcat();
File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat");
tomcat.setBaseDir(baseDir.getAbsolutePath());
Connector connector = new Connector(this.protocol);
connector.setThrowOnFailure(true);
tomcat.getService().addConnector(connector);
customizeConnector(connector);
tomcat.setConnector(connector);
tomcat.getHost().setAutoDeploy(false);
configureEngine(tomcat.getEngine());
for (Connector additionalConnector : this.additionalTomcatConnectors) {
tomcat.getService().addConnector(additionalConnector);
}
prepareContext(tomcat.getHost(), initializers);
return getTomcatWebServer(tomcat);
}总结: 所谓内嵌服务器,就是把我们手动启动服务器的方法放进框架中了。
排除 tomcat 服务器,导入 undertow 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>方法一: 修改 server 下的配置文件
ServerProperties.class

server.undertow.accesslog.dir=/tmp
方法二: 自定义 ConfigurableServletWebServerFactory
方法三: 自定义 ServletWebServerFactoryCustomizer 定制化器
作用: 将配置文件的值,与 ServletWebServerFactory 绑定
SpringBoot 设计: Customizer 定制化器,可以定制 XXX 规则
以上就是SpringBoot嵌入式Web容器如何使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号