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://www.mzph.cn/news/55828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言常用数学函数

目录 1. - * / ^ 2.%/%和%% 3.ceiling,floor,round 4.signif,trunc,zapsamll 5.max,min,mean,pmax,pmin 6.range和sum 7.prod 8.cumsum,cumprod,cummax,cummin 9.sort 10. approx 11.approx fun 12.diff 13.sign 14.var和sd 15.median 16.IQR 17.ave 18.five…

用Python写一个武侠游戏

前言 在本教程中,我们将使用Python写一个武侠类的游戏,大的框架全部搭好了,很多元素都可以自己添加,让游戏更丰富 📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 -…

编码过程中需要注意哪些安全问题?

SQL 安全 注入式(Inject)攻击是一类非常常见的攻击方式,其基本特征是程序允许攻击者将不可信的动态内容注入到程序中,并将其执行,这就可能完全改变最初预计的执行过程,产生恶意效果。下面是几种主要的注入…

帆软报表系统获取管理员权限

子曰:“君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉:可谓好学也已。” 漏洞实战 构造payload,访问漏洞url后台地址: /ReportServer?opfr_auth&cmdah_loginui&_161983254558…

基于安卓的考研助手系统app 微信小程序

,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。HBuilder技术作为当前最流行的操作平台,自然也存在着大量的应用服务需求。 本课题研究的是基于HBuilder技术平台的安卓的考研助手APP,开发这款安卓的考研助手APP主要是为了…

Go【gin和gorm框架】实现紧急事件登记的接口

简单来说,就是接受前端微信小程序发来的数据保存到数据库,这是我写的第二个接口,相比前一个要稍微简单一些,而且因为前端页面也是我写的,参数类型自然是无缝对接_ 前端页面大概长这个样子 先用apifox模拟发送请求测试…

在其他python环境中使用jupyter notebook

1、切换到目标python环境 activate 目标python环境 2、安装notebook内核包 pip install ipykernel 3、加环境加入到notebook中 python -m ipykernel install 目标python环境 4、切换到base环境 activate base 5、打开目标项目的对应盘 如果,项目在c盘&…

【linux进程概念】

目录: 冯诺依曼体系结构操作系统进程 基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程查看进程 fork()函数 冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺…

基于HarmonyOS ArkUI实现音乐列表功能

本节将演示如何在基于HarmonyOS ArkUI的List组件来实现音乐列表功能。 本文涉及的所有源码&#xff0c;均可以在文末链接中找到。 活动主页 华为开发者论坛 规则要求具体要求如下&#xff1a; 第1步&#xff1a;观看<HarmonyOS第一课>“营”在暑期•系列直播&#x…

(WAF)Web应用程序防火墙介绍

&#xff08;WAF&#xff09;Web应用程序防火墙介绍 1. WAF概述 ​ Web应用程序防火墙&#xff08;WAF&#xff09;是一种关键的网络安全解决方案&#xff0c;用于保护Web应用程序免受各种网络攻击和威胁。随着互联网的不断发展&#xff0c;Web应用程序变得越来越复杂&#x…

使用 uniapp 适用于wx小程序 - 实现移动端头部的封装和调用

图例&#xff1a;红框区域&#xff0c;使其标题区与胶囊对齐 一、组件 navigation.vue <template><view class"nav_name"><view class"nav-title" :style"{color : props.color, padding-top : toprpx,background : props.bgColor,he…

【字节跳动青训营】后端笔记整理-4 | Go框架三件套之GORM的使用

**本人是第六届字节跳动青训营&#xff08;后端组&#xff09;的成员。本文由博主本人整理自该营的日常学习实践&#xff0c;首发于稀土掘金。 我的go开发环境&#xff1a; *本地IDE&#xff1a;GoLand 2023.1.2 *go&#xff1a;1.20.6 *MySQL&#xff1a;8.0 本文介绍Go框架三…

【Java 高阶】一文精通 Spring MVC - 数据验证(七)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

iOS 如何对整张图分别局部磨砂,并完全贴合

官方磨砂方式 - (UIVisualEffectView *)effectView{if(!_effectView){UIBlurEffect *blur [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];_effectView [[UIVisualEffectView alloc] initWithEffect:blur];}return _effectView; }使用这种方式对一张图的上半部分和…

Nacos 注册中心的使用(单体)

环境 springboot springcloud Nacos注册中心服务端 下载windows版或Linux版&#xff1a;https://nacos.io/zh-cn 目录结构&#xff1a; 配置文件./config/application.properties 启动文件./bin/startup.cmd&#xff1a; cmd命令启动单机服务startup.cmd -m standalone 父…

dig批量域名逆向查询ip

dig批量域名逆向查询ip dig nocmd noall answer -f iplist.txtiplist.txt中内容 效果图&#xff1a; dig其他选项参数&#xff1a; dig www.baidu.com A # 查询A记录&#xff0c;如果域名后面不加任何参数&#xff0c;默认查询A记录 dig www.baidu.com MX # 查询MX记…

云服务器 宝塔(每次更新)

su root 输入密码 使用 root 权限 /etc/init.d/bt default 获取宝塔登录 位置和账号密码。进入宝塔 删除数据库 删除php前端站点 删除PM2后端项目 前端更改完配置打包dist文件 后端更改完配置项目打包 数据库结构导出 导入数据库 配置 PM2 后端 安装依赖

言有三新书出版,《深度学习之图像识别(全彩版)》上市发行,配套超详细的原理讲解与丰富的实战案例!...

各位同学&#xff0c;今天有三来发布新书了&#xff0c;名为《深度学习之图像识别&#xff1a;核心算法与实战案例&#xff08;全彩版&#xff09;》&#xff0c;本次书籍为我写作并出版的第6本书籍。 前言 2019年5月份我写作了《深度学习之图像识别&#xff1a;核心技术与案例…

Spring框架

一.简介 Spring 是 2003 年兴起,通过使用IOC 和 AOP 组成的轻量级的为解决企业级开发的Java开发框架 官网:Spring | Home 特点: 1.轻量级:资源jar包少,运行时框架占用资源少,效率更高 2.IOC(Inversion of Control),由Spring容器来对对象实行管理 3.AOP(面相切面的编程)是…