亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

淺談Spring Boot Web 應用性能優化

2024-07-14 08:41:49
字體:
來源:轉載
供稿:網友

默認情況下,Spring Boot Web 應用會裝配一些功能組件 Bean。

在大多數 Web 應用場景下,可以選擇性地關閉一下自動裝配的Spring 組件 Bean,以達到提升性能的目的。

配置項優化

Spring Boot Web 應用加速 完整配置項

management.add-application-context-header = falsespring.mvc.formcontent.putfilter.enabled = falsespring.autoconfigure.exclude = org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,/org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration,/org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,/org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,/org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration,/org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration,/org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration,/org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration,/org.springframework.boot.autoconfigure.websocket.WebSocketMessagingAutoConfiguration,/org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,/org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,/org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,/org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration,/org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration,/org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration,/org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration,/org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration

配置項匯總

spring.autoconfigure.exclude = org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration,/org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration,/org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration

關閉 Web 請求跟蹤 自動裝配

org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration

顧名思義,該自動裝配用跟蹤 Web 請求,通過Servlet Filter org.springframework.boot.actuate.trace.WebRequestTraceFilter 記錄請求的信息(如:請求方法、請求頭以及請求路徑等),其計算的過程存在一定的開銷,使用場景罕見,故可選擇關閉。

配置項

spring.autoconfigure.exclude = org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration

org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration

org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration關閉后,其請求信息存儲介質org.springframework.boot.actuate.trace.TraceRepository沒有存在的必要,故可選擇關閉。

配置項

spring.autoconfigure.exclude = org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration

關閉 Web 請求結果指標 自動裝配

org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration

該組件將自動裝配org.springframework.boot.actuate.autoconfigure.MetricsFilter,該 Filter主要記錄Web 請求結果指標(如:相應狀態碼、請求方法執行時間等),該信息一定程度上與反向代理服務器(nginx)功能重疊,故可選擇關閉。

配置項

spring.autoconfigure.exclude = org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration

可關閉 Servlet Web 組件

org.springframework.web.filter.HttpPutFormContentFilter

引入版本

org.springframework.web.filter.HttpPutFormContentFilter 由 Spring Framework 3.1 版本引入,分發在 org.springframework:spring-web 中。

使用場景

通常 Web 場景中,瀏覽器通過 HTTP GET 或者 POST 請求 提交 Form 數據,而非瀏覽器客戶端(如應用程序)可能通過 HTTP PUT 請求來實現。

當 HTTP 請求頭Content-Type 為 application/x-www-form-urlencoded 時,Form 數據被 encoded。而 Servlet 規范中, ServletRequest.getParameter*()方法僅對 HTTP POST 方法支持請求參數的獲取,如:

故 以上方法無法支持 HTTP PUT 或 HTTP PATCH 請求方法(請求頭Content-Typeapplication/x-www-form-urlencoded)。

org.springframework.web.filter.HttpPutFormContentFilter 正是這種場景的解決方案。

Spring Boot 默認場景下,將org.springframework.web.filter.HttpPutFormContentFilter org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration 自動裝配,以下為 Spring Boot1.4.1.RELEASE 以及更好版本定義(可能存在一定的差異):

@Configuration@ConditionalOnWebApplication@ConditionalOnClass({ Servlet.class, DispatcherServlet.class,  WebMvcConfigurerAdapter.class })@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class,  ValidationAutoConfiguration.class })public class WebMvcAutoConfiguration { ...... @Bean @ConditionalOnMissingBean(HttpPutFormContentFilter.class) @ConditionalOnProperty(prefix = "spring.mvc.formcontent.putfilter", name = "enabled", matchIfMissing = true) public OrderedHttpPutFormContentFilter httpPutFormContentFilter() {  return new OrderedHttpPutFormContentFilter(); } ......}

綜上所述,org.springframework.web.filter.HttpPutFormContentFilter 在絕大多數 Web 使用場景下為非必須組件。

配置項

如果應用依賴 Spring Boot 版本 為 1.4.1.RELEASE 以及更高的版本,可通過如下配置,進行將 org.springframework.web.filter.HttpPutFormContentFilter 關閉:

spring.mvc.formcontent.putfilter.enabled = false

org.springframework.web.filter.HiddenHttpMethodFilter

引入版本

org.springframework.web.filter.HiddenHttpMethodFilter 由 SpringFramework 3.0 版本引入,分發在org.springframework:spring-web 中。

使用場景

當 Web 服務端同一資源(URL)提供了多請求方法的實現,例如 URI :/update 提供了HTTP POST 以及 HTTP PUT 實現),通常 Web 場景中,瀏覽器僅支持 HTTP GET或者 POST 請求方法,這樣的話,瀏覽器無法發起 HTTP PUT 請求。

為了瀏覽器可以消費 HTTP PUT 資源, 需要在服務端將 HTTP POST 轉化成HTTP PUT 請求,為了解決這類問題,Spring 引入org.springframework.web.filter.HiddenHttpMethodFilter Web 組件。

當瀏覽器 發起 HTTP POST 請求時,可通過增加請求參數(默認參數名稱:"_method")的方式,進行HTTP 請求方法切換,
org.springframework.web.filter.HiddenHttpMethodFilter 獲取參數"_method"值后,將參數值作為HttpServletRequest#getMethod()的返回值,給后續 Servlet實現使用。

出于通用性的考慮,org.springframework.web.filter.HiddenHttpMethodFilter通過調用 #setMethodParam(String) 方法,來修改轉換請求方法的參數名稱。

Spring Boot 默認場景下,將org.springframework.web.filter.HttpPutFormContentFilter org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration 自動裝配,以下為 Spring Boot 1.4.1.RELEASE 以及更好版本定義(可能存在一定的差異):

@Configuration@ConditionalOnWebApplication@ConditionalOnClass({ Servlet.class, DispatcherServlet.class,  WebMvcConfigurerAdapter.class })@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class,  ValidationAutoConfiguration.class })public class WebMvcAutoConfiguration { ...... @Bean @ConditionalOnMissingBean(HiddenHttpMethodFilter.class) public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {  return new OrderedHiddenHttpMethodFilter(); } ......}

綜上所述,org.springframework.web.filter.HiddenHttpMethodFilter 也是特殊場景下所需,故可以關閉之。

配置項

按目前最新的 Spring Boot 1.5.2.RELEASE 版本中實現,也沒有提供類似spring.mvc.formcontent.putfilter.enabled 這樣的配置項關閉,無法關閉。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久艳片www.17c.com| 国产精品视频永久免费播放| 日韩欧美精品免费在线| 久久久成人精品| 久久亚洲私人国产精品va| 一区二区三欧美| 日韩精品免费在线视频| 色悠悠久久88| 亚洲最大福利网站| 国产在线精品自拍| 亚洲精品一区中文| 在线日韩中文字幕| 欧美在线性爱视频| 91久久国产精品91久久性色| 亚洲欧美日韩高清| 亚洲精品网站在线播放gif| 国产精品久久久久aaaa九色| 欧美性精品220| 亚洲精品久久久久国产| 中文字幕av一区二区| 亚洲精品美女在线观看| 北条麻妃在线一区二区| 欧美日韩免费看| 亚洲精品wwww| 清纯唯美亚洲综合| 欧美在线一区二区三区四| www国产精品com| 日韩欧美一区二区在线| 久久久久在线观看| 日本一区二区在线免费播放| 亚洲欧美在线免费观看| 91系列在线观看| 97国产精品视频人人做人人爱| 中文精品99久久国产香蕉| 欧美理论电影在线播放| 国语自产在线不卡| 亚洲电影免费观看高清完整版在线观看| 岛国视频午夜一区免费在线观看| 日本韩国欧美精品大片卡二| 26uuu亚洲国产精品| 国产精品免费视频xxxx| 日本韩国在线不卡| 日韩在线视频导航| 欧美色播在线播放| 日韩在线观看免费av| 日韩国产在线播放| 精品视频一区在线视频| 日本一本a高清免费不卡| 欧美电影电视剧在线观看| 日韩电影在线观看中文字幕| 亚洲乱码国产乱码精品精| 奇米4444一区二区三区| 亚洲字幕一区二区| 国产精品小说在线| 日韩免费在线观看视频| 激情久久av一区av二区av三区| 国产ts一区二区| 亚洲国产精品女人久久久| 国产视频久久久久久久| 亚洲无限av看| 亚洲xxxxx性| 欧美成年人网站| 久久久国产成人精品| 欧美亚洲另类在线| 欧美高清激情视频| 欧美成人亚洲成人日韩成人| 日韩精品福利在线| 欧美久久久精品| 亚洲欧美日韩一区二区三区在线| 欧美午夜久久久| 成人有码在线播放| 亚洲永久免费观看| 亚洲成人亚洲激情| 欧美天天综合色影久久精品| 欧美大肥婆大肥bbbbb| 日韩欧美999| 国产成人精品日本亚洲| 91精品久久久久久久久| 黑人精品xxx一区一二区| 欧美日韩一二三四五区| 国产精品久久久久aaaa九色| 91精品久久久久久久久久久| 57pao国产成人免费| 欧美国产在线视频| 亚洲精品乱码久久久久久按摩观| 日韩激情在线视频| 欧美精品在线免费观看| 国产69精品久久久| 日韩精品在线视频| 亚洲老头老太hd| 日韩欧美黄色动漫| 久久视频在线免费观看| 欧美尺度大的性做爰视频| 亚洲欧美日韩视频一区| 欧美日本高清视频| 国产精品白嫩美女在线观看| 欧美人交a欧美精品| 日韩电影在线观看永久视频免费网站| 亚洲电影中文字幕| 国产精品va在线播放我和闺蜜| 韩国精品美女www爽爽爽视频| 欧美日韩第一视频| 亚洲男人天堂九九视频| 国产亚洲一区二区精品| 欧美日韩国产va另类| 欧洲美女7788成人免费视频| 精品一区二区三区四区在线| 伊人伊成久久人综合网站| 国产在线精品自拍| 色哟哟亚洲精品一区二区| 136fldh精品导航福利| 国内精品一区二区三区| 欧美一级大片视频| 日韩国产在线看| 97欧美精品一区二区三区| 久久精品国产久精国产一老狼| 久久精品99久久久香蕉| 欧美成人午夜影院| 国产欧美精品xxxx另类| 黑人精品xxx一区| 国产最新精品视频| 国产日韩欧美影视| 神马久久桃色视频| 国产精品嫩草影院一区二区| 欧美高清视频一区二区| 久久精品99久久久久久久久| 久久天天躁狠狠躁夜夜躁2014| 国产日产久久高清欧美一区| 欧美性理论片在线观看片免费| 国产精品视频精品视频| 国产精品一区二区三| 国产日韩精品在线观看| 性欧美长视频免费观看不卡| 欧美电影在线观看高清| 日韩av在线最新| 亚洲iv一区二区三区| 日韩小视频网址| 久久久女人电视剧免费播放下载| 国产精品久久综合av爱欲tv| 国产精品久久久久久av福利| 91干在线观看| 欧美视频在线免费看| 中文字幕亚洲一区二区三区| 亚洲影院高清在线| 日韩专区在线观看| 国产精品最新在线观看| 久久久久久久一| 亚洲淫片在线视频| 海角国产乱辈乱精品视频| 人九九综合九九宗合| 国产精品丝袜白浆摸在线| 亚洲午夜未满十八勿入免费观看全集| 日韩美女免费线视频| 8090成年在线看片午夜| 3344国产精品免费看| 亚洲成人精品视频在线观看| 久久免费视频这里只有精品| 精品中文字幕在线观看| 欧美激情国产高清| 欧美自拍大量在线观看| 精品在线小视频| 久久久久国产精品免费网站| 欧美人交a欧美精品| 国产第一区电影|