★ 啟用HTTP壓縮
就是前端頁面如果改動的比較多,那么響應(yīng)就會比較慢,可以通過設(shè)置HTTP響應(yīng)壓縮來提高響應(yīng),如果前端改動少,那么就不需要啟動這個響應(yīng)壓縮。
目的:為了提高HTTP響應(yīng)數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸效率。
▲ 設(shè)置如下屬性來啟用HTTP響應(yīng)壓縮。
server.compression.enabled=true
▲ 設(shè)置如下屬性指定當(dāng)響應(yīng)數(shù)據(jù)大于多少時才啟用響應(yīng)壓縮
server.compression.min-response-size=1024
▲ 設(shè)置如下屬性指定只有當(dāng)響應(yīng)是哪些MIME類型時才啟用響應(yīng)壓縮
server.compression.mime-types=text/html, text/css
★ 用編程式的配置,來啟用HTTP壓縮
就是獲取到 WebServer 這個Web服務(wù)器,然后修飾里面的一些東西,比如端口號,比如對某些前端頁面啟用 HTTP壓縮 的功能。
方法有兩種:
第一個:實現(xiàn)WebServerFactoryCustomizer這個接口
第二個:在容器中自定義ConfigurableWebServerFactory 這個bean
兩者都是為了定制 WebServer 這個Web服務(wù)器,啟用 HTTP 壓縮
=================================================
ConfigurableWebServerFactory ——它的作用負責(zé)生成嵌入式Web服務(wù)器。
ConfigurableWebServerFactory 的兩個子接口:
ConfigurableReactiveWebServerFactory(生成響應(yīng)式的web服務(wù)器), ConfigurableServletWebServerFactory,(生成基于Servlet的Web服務(wù)器)
方式有兩種:
A. 定義一個實現(xiàn)WebServerFactoryCustomizer接口的Bean實例。
接口中的customize()方法用于對容器中默認的ConfigurableWebServerFactory進行定制。
ConfigurableWebServerFactory就是根據(jù)定制的結(jié)果來負責(zé)生成WebServer,
因此程序?qū)onfigurableWebServerFactory所做的設(shè)置,最終其實是作用于WebServer
=================================================================
B. 直接在容器中定義一個自己的ConfigurableWebServerFactory Bean,
但實際返回值類型必須聲明為它的子接口: ConfigurableServletWebServerFactory或ConfigurableReactivetWebServerFactory
【自動配置的替換原則】:一旦你在容器中配置了某個Bean后,Spring Boot將不再自動配置該Bean。
這種方式的本質(zhì)就是用自定義的ConfigurableWebServerFactory代替自動配置的該Bean
由于ConfigurableWebServerFactory是自定義配置的,因此想怎么設(shè)置就怎么設(shè)置
這種方式的好處是:用了自定義的WebServerFactory代替了自動配置的WebServerFactory,因此非常直觀,可以獲取全部控制權(quán)
缺點是:不夠靈活,以后如果要切換服務(wù)器,必須手動修改代碼。
代碼演示:
方法1:實現(xiàn)WebServerFactoryCustomizer接口,做一個定制化器,來為 WebServer 這個Web服務(wù)器 進行定制。
這個定制化器是如何實現(xiàn)它的功能。
給這個定制話器這個類添加 @Compoment 注解,把這個組件交給spring容器管理,
在項目啟動的時候就會來加載這個組件,然后執(zhí)行這個組件的代碼,
代碼中的compression.setEnabled(true) 就是啟動http壓縮功能,
通過端口號就可以看出來這個組件的http壓縮功能已經(jīng)實現(xiàn)了,雖然我們沒有去調(diào)用,當(dāng)時spring容器會自動幫我們加載。
ConfigurableWebServerFactory就是根據(jù)定制的結(jié)果來負責(zé)生成WebServer,
因此程序?qū)onfigurableWebServerFactory所做的設(shè)置,最終其實是作用于WebServer
WebServer就是springboot這個項目的 Web 服務(wù)器。這個Web服務(wù)器就有項目的一些比如端口號之類的,想要獲得這些東西,就可以從這個webserver下手。
方法2:
上面的定制化器是實現(xiàn)WebServerFactoryCustomizer接口,這個接口的參數(shù)是ConfigurableWebServerFactory。
這次的需要是我們自己自定義一個 ConfigurableServletWebServerFactory bean。
ConfigurableWebServerFactory ——它的作用負責(zé)生成嵌入式Web服務(wù)器。
ConfigurableWebServerFactory 的兩個子接口:
ConfigurableReactiveWebServerFactory(生成響應(yīng)式的web服務(wù)器),
ConfigurableServletWebServerFactory,(生成基于Servlet的Web服務(wù)器)
@configuration注解
@configuration 注解是一個用于標記一個類的注解,用于表示該類是一個配置類。它通常與 Spring 框架一起使用,用于配置和定義 Bean 對象及其之間的依賴關(guān)系。
@Configuration 注解的作用是告訴 Spring 容器,被注解的類中可能包含用 @Bean 注解標記的方法,這些方法將會在 Spring 容器啟動時被調(diào)用,創(chuàng)建并初始化相應(yīng)的 Bean 對象。文章來源:http://www.zghlxwxcb.cn/news/detail-668103.html
這個也算是在定制自己的 webserver 這個web 服務(wù)器,類是配置類,里面有一個@Bean注解修飾的方法,在項目啟動的時候被加載。文章來源地址http://www.zghlxwxcb.cn/news/detail-668103.html
到了這里,關(guān)于32、啟用 HTTP 響應(yīng)壓縮和編程式配置Web應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!