嵌入式 Servlet 容器配置修改|学习笔记

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 快速学习嵌入式 Servlet 容器配置修改

开发者学堂课程【SpringBoot快速掌握 - 核心技术嵌入式 Servlet 容器配置修改】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/612/detail/9258


嵌入式 Servlet 容器配置修改

一、介绍配置嵌入式 Servlet 容器

1、嵌入式 Servlet 容器的概念:

(1) 首先应该明确一点,写一个 wed 应用,写完之后需要打成一个 war 包,外部配好 Tomcat 环境(Tomcat 就是一个 Servlet 容器),将 war 包挂载到 Tomcat,接下来在外部启动 Tomcat 即可。

(2) springBoot 无需外部使用环境可以直接启动使用,而 Tomcat 在也8080端口启动,用的是自带的嵌入式 Servlet 容器。

(3) springBoot 默认是用的嵌入的 Servlet 容器(Tomcat),然后分析 pom.xml 的相关依赖关系,右键点击生成依赖图。

(4) 发现做 wed 应用引入了,spring-boot-start-wed。而在wed里面又引入了spring-boot-start-tomcat的相关功能。通过观察Tomcat依赖树,也能发现是用的自带的嵌入式Tomcat。

(5) spring-boot-start-tomcat默认的版本号是8.5.27。

image.png

通过分析相关依赖树也能发现默认使用自带的嵌入式 Tomcat。

2、如果是嵌入式的 Servlet 容器需要注意的是,注意几个问题:

(1)如何定制和修改 Servlet 容器的相关配置;

//针对于第一个问题,想要修改 Tomcat 的端口号或者项目的访问路径,可以这么做:

①、修改和servlet有关的配置(Serverproperties【也是EmbeddedServlertContainerCustomizer 】)//而与 Servlet 有关的配置肯定是和一个类绑定的。改 Serverproperties 都是对服务器进行一些设置。

如果使用外置的 Servlet 容器,外边装了一个 Tomcat,想对 Tomcat 做的一些定制优化设置,就可以来到 application.prperties 只需要改 server.port 相关属性即可。在外置的情况下是有配置文件的,而嵌入式的 Tomcat 该如何去修改呢?Servlet 容器有很多,Tomcat是一种 Servlet 容器,那能不能切换 Spring Boot 支持其他 Servlet 容器。

例如:

server.port =8081

server.context-path=/crud

//通用的Servlet容器设置

server.xxx

/Tomcat的设置//Tomcat设置有这个专门的属性对象。

server.tomcat.xxx

//Tomcat相关设置有协议头、目录结构、编码格式、最大链接数等等。

//修改完之后 Tomca 就会从8081启动了。

springBoot 中的 Serverproperties 绑定了 server. 的相关配置,有端口号、访问路径和有关 session 的相关配置、超时时间等。

如果是外置的 Servlet 容器,如果这时需要对 Tomcat 进行相关配置优化可以到Tomcat 目录找到相关配置文件,如 server.xml 或 wed.xml 等等。

②、编写一个 E mbeddedServlertContainerCustomizer:嵌入式的 Servlet 容器的定器;可通过这种模式来修改 Servlet 容器的相关配置。例:

MyMvcConfig.java 里编写一个加一个组件:

@Bean//要让 container.setPort(8083)起作用必须把他加入到容器中,这样Spring Boot 才能知道配置的存在

public interface EmbeddedServlertContainerCustomizer embeddedServlertContainerCustomizer(){//interface是一个接口,而接口里面只有一个方法。

return new EmbeddedServlertContainerCustomizer (){ 

//通过customize定制嵌入式的Servlet容器相关的规则

@Override

public void customize(configurableEbedddedServletContainer container){

//那么直接new一个customize来实现方法就可以了。container就是一个嵌入式的Servlet容器。

container.setPort(8083)

}

}

}

//引入类

(2)springBoot 能不能支持其他的 Servlet 容器;

Servlet 容器有很多,Tomcat 是一种 Servlet 容器。修改只需要修改 server. 配置就可以了。

//修改 Servlet 有关配置上面两种方式都可以使用,要么用编码的方式,要么用配置文件的方式。两种方式虽然表面上看上去不同,一个修改配置文件,一个是写代码,当然在底层是同一个原理的。来看一下 ServerProperties 其实它也是EmbeddedServlertContainerCustomizer ,也是利用 customize 方法,把配置属性放在嵌入式的 Servlet 容器中。

(3)在 SpringBoot 中会有很多的 xxxCustomizer 帮助我们进行定制配置。

//如何修改 SpringBoot 默认配置补充的一点

相关文章
|
2月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
78 0
|
12天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
23 5
|
29天前
|
Kubernetes 监控 Java
如何在Kubernetes中配置镜像和容器的定期垃圾回收
如何在Kubernetes中配置镜像和容器的定期垃圾回收
|
4月前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
4月前
|
弹性计算 Kubernetes 开发者
利用容器化服务实现游戏服务器的动态资源配置
【8月更文第12天】在游戏行业中,用户基数的变化往往呈现出明显的波动性,特别是在推广活动期间,用户基数会显著增加,而在非推广期则会有所下降。为了应对这种变化,游戏开发者需要一种能够根据用户基数动态调整服务器资源的解决方案,以确保用户体验的同时最大限度地节省成本。容器化服务因其灵活的资源管理和成本控制能力,成为了理想的解决方案。
66 2
|
4月前
|
Linux 开发工具 数据库
【REP】hrms-ERPNext 容器安装配置
【REP】hrms-ERPNext 容器安装配置
|
3天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
121 77
|
12天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
5天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
30 3
|
12天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
42 7