嵌入式 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天前
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
2天前
|
Docker 容器
Docker学习笔记三:如何运行一个容器?
Docker学习笔记三:如何运行一个容器?
Docker学习笔记三:如何运行一个容器?
|
2天前
|
Java API Spring
Spring容器如何使用一个注解来指定一个类型为配置类型
Spring容器如何使用一个注解来指定一个类型为配置类型
20 0
|
2天前
|
运维 Linux Docker
Docker详解(十三)——Docker容器的内存和磁盘I/O限制配置
Docker详解(十三)——Docker容器的内存和磁盘I/O限制配置
17 1
|
2天前
|
存储 运维 Linux
Docker详解(十)——Docker容器CPU资源限额配置
Docker详解(十)——Docker容器CPU资源限额配置
24 3
|
2天前
|
XML Java 数据格式
如何配置IoC容器?
【4月更文挑战第30天】如何配置IoC容器?
20 0
|
2天前
|
Linux 网络安全 Docker
【Linux】-docker配置容器并打包成镜像
【Linux】-docker配置容器并打包成镜像
|
2天前
|
网络协议 安全 Linux
1.安装 docker 容器并配置镜像加速器
1.安装 docker 容器并配置镜像加速器
121 11
|
2天前
|
存储 Kubernetes 数据安全/隐私保护
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(配置与密码安全)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(配置与密码安全)
41 0
|
2天前
|
网络协议 前端开发 Java
异步Servlet学习笔记(一)
异步Servlet学习笔记(一)