嵌入式 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 默认配置补充的一点

相关文章
|
3月前
|
域名解析 网络协议 API
【Azure Container App】配置容器应用的缩放规则 Managed Identity 连接中国区 Azure Service Bus 问题
本文介绍了在 Azure Container Apps 中配置基于自定义 Azure Service Bus 的自动缩放规则时,因未指定云环境导致的域名解析错误问题。解决方案是在扩展规则中添加 `cloud=AzureChinaCloud` 参数,以适配中国区 Azure 环境。内容涵盖问题描述、原因分析、解决方法及配置示例,适用于使用 KEDA 实现事件驱动自动缩放的场景。
|
2月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
160 16
|
2月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
10月前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
269 6
|
10月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
416 5
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
136 3
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
149 1
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
117 1
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
266 12
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
353 0