32、启用 HTTP 响应压缩和编程式配置Web应用

★ 启用HTTP压缩

就是前端页面如果改动的比较多,那么响应就会比较慢,可以通过设置HTTP响应压缩来提高响应,如果前端改动少,那么就不需要启动这个响应压缩。

目的:为了提高HTTP响应数据在网络上的传输效率。▲ 设置如下属性来启用HTTP响应压缩。
server.compression.enabled=true▲ 设置如下属性指定当响应数据大于多少时才启用响应压缩
server.compression.min-response-size=1024▲ 设置如下属性指定只有当响应是哪些MIME类型时才启用响应压缩
server.compression.mime-types=text/html, text/css

★ 用编程式的配置,来启用HTTP压缩

就是获取到 WebServer 这个Web服务器,然后修饰里面的一些东西,比如端口号,比如对某些前端页面启用 HTTP压缩 的功能。
方法有两种:
第一个:实现WebServerFactoryCustomizer这个接口
第二个:在容器中自定义ConfigurableWebServerFactory 这个bean

两者都是为了定制 WebServer 这个Web服务器,启用 HTTP 压缩

=================================================

ConfigurableWebServerFactory ——它的作用负责生成嵌入式Web服务器。

ConfigurableWebServerFactory 的两个子接口:

ConfigurableReactiveWebServerFactory(生成响应式的web服务器), ConfigurableServletWebServerFactory,(生成基于Servlet的Web服务器)

方式有两种:
A. 定义一个实现WebServerFactoryCustomizer接口的Bean实例。
接口中的customize()方法用于对容器中默认的ConfigurableWebServerFactory进行定制。

ConfigurableWebServerFactory就是根据定制的结果来负责生成WebServer,
因此程序对ConfigurableWebServerFactory所做的设置,最终其实是作用于WebServer

=================================================================

B. 直接在容器中定义一个自己的ConfigurableWebServerFactory Bean,
但实际返回值类型必须声明为它的子接口: ConfigurableServletWebServerFactory或ConfigurableReactivetWebServerFactory
【自动配置的替换原则】:一旦你在容器中配置了某个Bean后,Spring Boot将不再自动配置该Bean。

这种方式的本质就是用自定义的ConfigurableWebServerFactory代替自动配置的该Bean
由于ConfigurableWebServerFactory是自定义配置的,因此想怎么设置就怎么设置

这种方式的好处是:用了自定义的WebServerFactory代替了自动配置的WebServerFactory,因此非常直观,可以获取全部控制权
缺点是:不够灵活,以后如果要切换服务器,必须手动修改代码。

代码演示:

方法1:实现WebServerFactoryCustomizer接口,做一个定制化器,来为 WebServer 这个Web服务器 进行定制。

这个定制化器是如何实现它的功能。
给这个定制话器这个类添加 @Compoment 注解,把这个组件交给spring容器管理,
在项目启动的时候就会来加载这个组件,然后执行这个组件的代码,
代码中的compression.setEnabled(true) 就是启动http压缩功能,
通过端口号就可以看出来这个组件的http压缩功能已经实现了,虽然我们没有去调用,当时spring容器会自动帮我们加载。

ConfigurableWebServerFactory就是根据定制的结果来负责生成WebServer,
因此程序对ConfigurableWebServerFactory所做的设置,最终其实是作用于WebServer
WebServer就是springboot这个项目的 Web 服务器。这个Web服务器就有项目的一些比如端口号之类的,想要获得这些东西,就可以从这个webserver下手。

在这里插入图片描述

方法2:
上面的定制化器是实现WebServerFactoryCustomizer接口,这个接口的参数是ConfigurableWebServerFactory。

这次的需要是我们自己自定义一个 ConfigurableServletWebServerFactory bean。

ConfigurableWebServerFactory ——它的作用负责生成嵌入式Web服务器。  ConfigurableWebServerFactory 的两个子接口:
ConfigurableReactiveWebServerFactory(生成响应式的web服务器), 
ConfigurableServletWebServerFactory,(生成基于Servlet的Web服务器) 

@configuration注解
@configuration 注解是一个用于标记一个类的注解,用于表示该类是一个配置类。它通常与 Spring 框架一起使用,用于配置和定义 Bean 对象及其之间的依赖关系。
@Configuration 注解的作用是告诉 Spring 容器,被注解的类中可能包含用 @Bean 注解标记的方法,这些方法将会在 Spring 容器启动时被调用,创建并初始化相应的 Bean 对象。

这个也算是在定制自己的 webserver 这个web 服务器,类是配置类,里面有一个@Bean注解修饰的方法,在项目启动的时候被加载。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1549852.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Android Jetpack Compose中使用字段验证的方法

Android Jetpack Compose中使用字段验证的方法 数据验证是创建健壮且用户友好的Android应用程序的关键部分。随着现代UI工具包Jetpack Compose的引入,处理字段验证变得更加高效和直观。在这篇文章中,我们将探讨如何在Android应用中使用Jetpack Compose进…

快速搭建 Linux 学习平台

最近换了一个新的笔记本电脑,原来的学习环境没了,所以就重新搭建一下,顺便把这个过程给记录下来,希望可以帮助有需要的人。一个学习环境最主要的目的是简化学习需要准备的时间,不需要花费太多的时间在哪些不必要的细枝…

ZD Soft Screen Recorder 注册汉化版 【好用的屏幕录制软件】

ZD Soft Screen Recorder 汉化版捕获计算机屏幕上的内容与声音,并保存为各种格式压缩的视频文件。你在屏幕上看到的一切都可以在高帧速率连续进行记录。其结果视频在记录时间内清晰再现画面内容,所以是声音。 ZD Soft Screen Recorder 也能够拍摄图像的截…

树莓派控制ZD-8731两相步进电机驱动器

之前写过一篇驱动步进电机的文章,可以跟这篇参考着看。请戳这里! 一、硬件: 树莓派3B ZD-8731驱动器 与驱动器配套的步进电机 电源 驱动器需要24V电源供电(用电很危险,请注意安全!) 二、…

linux内核编译无线网卡,ZD1211B芯片USB无线网卡Linux驱动的编译

我用的无线网卡芯片是zd1211b的,在网上找到很多驱动都不好用,最后在这里上找到好用的驱动 我们用的Linux内核是2.6.14的。驱动的交叉编译非常简单,在其Makefile中修改交叉编译器,然后把相应的KERNEL_SOURCE,MODPATH&am…

c -2 数组 指针 %zd 结构体

数组的初始化方式 初始化方式 int a[3] {10, 9, 6};int a[3] {10,9};int a[] {11, 7, 6};int a[4] {[1]11,[0] 7}; 数组与函数 数组作为函数参数,可以省略元素个数. 数组作为函数参数.传递是整个数组的地址,修改函数形参, 数组元素的值,会影响到外面的实参数组. 数组当做函…

特别好用的录屏软件--ZD Soft Screen Recorder_8.0

亲测,特别好用的一款录屏软件,大小仅有2.14M 免安装,即开即用 下载地址:https://download.csdn.net/download/smwykao/10391461

ORCALE触发器使用生成自增长的编号('zd20183290001')

本人是个新手,大佬们多多关照! 目前在学习oracle数据库,现在简单的使用触发器来生成字符串自增长编号(zd20183290001); -- 1. 首先创建一个用户表:TEST_USER;字段:ID,NAME DROP TABLE TEST_USER; CREA…

VE 海外新闻 ZD活动

ZD运动 在上一期也有介绍最近在产业界中,作为成本降低的一种手Zero Defects(ZD)运动开始急速流行了起来。 ZD运动最初开始于1962年左右,是在美国国防产业的龙头企业马丁公司的奥兰多事业部开始的。之后ZD运动不仅局限于制造领域&a…

发光二极管pcb封装图画法_电子元器件认识与使用ZD43 | 贴片74HC138 原理图PCB库 封装尺寸 | 视频教程...

购买电子芯原创视频教程完整版后,进专属答疑群,答疑为长期永久答疑,任何关于教程学习的问题都可以问。 答疑方式如下: 1、通过微信群语音或者文字的形式进行答疑(简单的问题); 2、通过微信私信我,语音或者文…

移植SFUD,驱动SPI FLASH ZD25WQ80

1、关于SFUD SFUD (Serial Flash Universal Driver) 串行 Flash 通用驱动库,支持众多spi flash,关于SFUD的详细资料可参考:https://github.com/armink/SFUD。 2、为什么会有通用驱动 JEDEC (固态技术协会)针对串行 …

stm32hal库应用笔记之 硬件I2C读写ZD24C64

话不多说 直接上资料 这是ZD24C64 数据手册里面的读写操作时序。 数据手册网上有很多相信大家也能随便就找到。 如下图所示: 这是使用iic按字节写操作 器件地址:我的是0xA0 来不及解释了赶快上车: 在下使用的是STM32_CubeIDE,个人觉得还是…

ZD680无人机组装调试流程

在权盛电子店里买了ZD680无人机套装,记录拼装调试的大体流程。 下面部分操作说明来源于权盛电子提供的教程。 一、配置清单 机架:ZD680,轴距680mm,机臂直径20mm,材质碳纤,载重3kg 电机:致盈…

麒麟系统在FT2000+下预留连续物理内存空间

1、背景介绍 项目需要在系统下预留一段连续物理地址空间供FPGA启动DMA直接写入,这样提高读写带宽。目前有两种方式可以实现该需求。 注意:前提是操作系统将内存空间访问权限全部放开,否则无法预留空间。 2、实现方法 方式一: …

适用于vue3中图片全屏展示

App中的代码片段 <style scoped> .container {background: url("./assets/back2.jpg");height: 100%;width: 100%;position: fixed;background-size: 100% 100%; } </style>

单机部署多个 nginx

为方便测试&#xff0c;单机部署多个 nginx&#xff0c;监听不同端口&#xff0c;响应不同页面。以其中一个为例&#xff1a; 1、新建目录&#xff1a; /root/nginx/8571/ /root/nginx/8571/html/ /root/nginx/8571/log/ 2、将文件&#xff1a;/usr/sbin/nginx 拷贝至 /root/n…

Ubuntu系统设置开机自启

在测试国产操作系统&#xff1a;银河麒麟、UOS统信机器的过程中&#xff0c;发现开机不自启&#xff0c;总结以下几种方式实现自启 一.rc.local rc.local脚本是一个Ubuntu开机后自动执行的脚本&#xff0c;可以在脚本内添加行指令&#xff0c;该脚本位于/etc/路径下&#xff…

linux系统的服务器怎么设置上电自启,Linux系统开机自启流程

第一步:POST(Power On Safe Test)加电自检 当按下电源键以后,CPU因为有电流通过便开始对自身、I/O设备、内存等硬件进行检验。那么CPU如何得知这些自检指令?我们知道指令存在于内存当中,寻找内存也需要指令。这看起来似乎是一个“死结”。如何解决呢?在CPU生厂商生产CPU的…

Nginx服务器启停命令

Nginx服务器启停命令 nginx安装好后&#xff0c;维护和更新&#xff0c;经常使用到启动和停止nginx服务。现主要介绍两种方式&#xff1a; 1、nginx服务器的信号控制 nginx中的master 和worker 进程是什么&#xff1f;nginx的工作方式是什么&#xff1f;如何获取进程的PID?信…