最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Spring Boot Web 應(yīng)用性能優(yōu)化

 更新時(shí)間:2018年07月25日 09:43:41   作者:mercyblitz  
這篇文章主要介紹了淺談Spring Boot Web 應(yīng)用性能優(yōu)化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

默認(rèn)情況下,Spring Boot Web 應(yīng)用會(huì)裝配一些功能組件 Bean。

在大多數(shù) Web 應(yīng)用場(chǎng)景下,可以選擇性地關(guān)閉一下自動(dòng)裝配的Spring 組件 Bean,以達(dá)到提升性能的目的。

配置項(xiàng)優(yōu)化

Spring Boot Web 應(yīng)用加速 完整配置項(xiàng)

management.add-application-context-header = false
spring.mvc.formcontent.putfilter.enabled = false

spring.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

配置項(xiàng)匯總

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

關(guān)閉 Web 請(qǐng)求跟蹤 自動(dòng)裝配

org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration

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

配置項(xiàng)

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

org.springframework.boot.actuate.autoconfigure.TraceRepositoryAutoConfiguration

當(dāng)org.springframework.boot.actuate.autoconfigure.TraceWebFilterAutoConfiguration關(guān)閉后,其請(qǐng)求信息存儲(chǔ)介質(zhì)org.springframework.boot.actuate.trace.TraceRepository沒有存在的必要,故可選擇關(guān)閉。

配置項(xiàng)

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

關(guān)閉 Web 請(qǐng)求結(jié)果指標(biāo) 自動(dòng)裝配

org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration

該組件將自動(dòng)裝配org.springframework.boot.actuate.autoconfigure.MetricsFilter,該 Filter主要記錄Web 請(qǐng)求結(jié)果指標(biāo)(如:相應(yīng)狀態(tài)碼、請(qǐng)求方法執(zhí)行時(shí)間等),該信息一定程度上與反向代理服務(wù)器(nginx)功能重疊,故可選擇關(guān)閉。

配置項(xiàng)

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

可關(guān)閉 Servlet Web 組件

org.springframework.web.filter.HttpPutFormContentFilter

引入版本

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

使用場(chǎng)景

通常 Web 場(chǎng)景中,瀏覽器通過(guò) HTTP GET 或者 POST 請(qǐng)求 提交 Form 數(shù)據(jù),而非瀏覽器客戶端(如應(yīng)用程序)可能通過(guò) HTTP PUT 請(qǐng)求來(lái)實(shí)現(xiàn)。

當(dāng) HTTP 請(qǐng)求頭Content-Type 為 application/x-www-form-urlencoded 時(shí),F(xiàn)orm 數(shù)據(jù)被 encoded。而 Servlet 規(guī)范中, ServletRequest.getParameter*()方法僅對(duì) HTTP POST 方法支持請(qǐng)求參數(shù)的獲取,如:

public intetfacce ServletRequest {

 ......

 public String getParameter(String name);

 public Enumeration<String> getParameterNames();

 public String[] getParameterValues(String name);

 public Map<String, String[]> getParameterMap();

 ......

}

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

org.springframework.web.filter.HttpPutFormContentFilter 正是這種場(chǎng)景的解決方案。

Spring Boot 默認(rèn)場(chǎng)景下,將org.springframework.web.filter.HttpPutFormContentFilter org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration 自動(dòng)裝配,以下為 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 在絕大多數(shù) Web 使用場(chǎng)景下為非必須組件。

配置項(xiàng)

如果應(yīng)用依賴 Spring Boot 版本 為 1.4.1.RELEASE 以及更高的版本,可通過(guò)如下配置,進(jìn)行將 org.springframework.web.filter.HttpPutFormContentFilter 關(guān)閉:

spring.mvc.formcontent.putfilter.enabled = false

org.springframework.web.filter.HiddenHttpMethodFilter

引入版本

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

使用場(chǎng)景

當(dāng) Web 服務(wù)端同一資源(URL)提供了多請(qǐng)求方法的實(shí)現(xiàn),例如 URI :/update 提供了HTTP POST 以及 HTTP PUT 實(shí)現(xiàn)),通常 Web 場(chǎng)景中,瀏覽器僅支持 HTTP GET或者 POST 請(qǐng)求方法,這樣的話,瀏覽器無(wú)法發(fā)起 HTTP PUT 請(qǐng)求。

為了瀏覽器可以消費(fèi) HTTP PUT 資源, 需要在服務(wù)端將 HTTP POST 轉(zhuǎn)化成HTTP PUT 請(qǐng)求,為了解決這類問(wèn)題,Spring 引入org.springframework.web.filter.HiddenHttpMethodFilter Web 組件。

當(dāng)瀏覽器 發(fā)起 HTTP POST 請(qǐng)求時(shí),可通過(guò)增加請(qǐng)求參數(shù)(默認(rèn)參數(shù)名稱:"_method")的方式,進(jìn)行HTTP 請(qǐng)求方法切換,
org.springframework.web.filter.HiddenHttpMethodFilter 獲取參數(shù)"_method"值后,將參數(shù)值作為HttpServletRequest#getMethod()的返回值,給后續(xù) Servlet實(shí)現(xiàn)使用。

出于通用性的考慮,org.springframework.web.filter.HiddenHttpMethodFilter通過(guò)調(diào)用 #setMethodParam(String) 方法,來(lái)修改轉(zhuǎn)換請(qǐng)求方法的參數(shù)名稱。

Spring Boot 默認(rèn)場(chǎng)景下,將org.springframework.web.filter.HttpPutFormContentFilter org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration 自動(dòng)裝配,以下為 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 也是特殊場(chǎng)景下所需,故可以關(guān)閉之。

配置項(xiàng)

按目前最新的 Spring Boot 1.5.2.RELEASE 版本中實(shí)現(xiàn),也沒有提供類似spring.mvc.formcontent.putfilter.enabled 這樣的配置項(xiàng)關(guān)閉,無(wú)法關(guān)閉。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java本服務(wù)如何調(diào)用本服務(wù)接口

    java本服務(wù)如何調(diào)用本服務(wù)接口

    這篇文章主要介紹了java本服務(wù)如何調(diào)用本服務(wù)接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Spring從@Aspect到Advisor使用演示實(shí)例

    Spring從@Aspect到Advisor使用演示實(shí)例

    這篇文章主要介紹了Spring從@Aspect到Advisor使用演示實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • @JsonProperty和@JSONField注解的區(qū)別解析(最新)

    @JsonProperty和@JSONField注解的區(qū)別解析(最新)

    Jackson是一款優(yōu)秀的JSON解析庫(kù),添加了依賴之后就可以使用對(duì)應(yīng)的注解,讓我們能夠自由的將Java對(duì)象和JSON做轉(zhuǎn)換,這篇文章主要介紹了@JsonProperty和@JSONField注解的區(qū)別,需要的朋友可以參考下
    2024-04-04
  • Java實(shí)現(xiàn)圖書管理系統(tǒng)的示例代碼

    Java實(shí)現(xiàn)圖書管理系統(tǒng)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用java語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 關(guān)于socket發(fā)送數(shù)據(jù)需要注意的問(wèn)題

    關(guān)于socket發(fā)送數(shù)據(jù)需要注意的問(wèn)題

    這篇文章主要介紹了關(guān)于socket發(fā)送數(shù)據(jù)需要注意的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 探究springboot中的TomcatMetricsBinder

    探究springboot中的TomcatMetricsBinder

    springboot的TomcatMetricsBinder主要是接收ApplicationStartedEvent然后創(chuàng)建TomcatMetrics執(zhí)行bindTo進(jìn)行注冊(cè),TomcatMetrics主要注冊(cè)了globalRequest、servlet、cache、threadPool、session相關(guān)的指標(biāo),本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-11-11
  • java Split 實(shí)現(xiàn)去除一個(gè)空格和多個(gè)空格

    java Split 實(shí)現(xiàn)去除一個(gè)空格和多個(gè)空格

    這篇文章主要介紹了java Split 實(shí)現(xiàn)去除一個(gè)空格和多個(gè)空格,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • java應(yīng)用程序如何自定義log4j配置文件的位置

    java應(yīng)用程序如何自定義log4j配置文件的位置

    這篇文章主要介紹了java應(yīng)用程序如何自定義log4j配置文件的位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 詳解Java Callable接口實(shí)現(xiàn)多線程的方式

    詳解Java Callable接口實(shí)現(xiàn)多線程的方式

    這篇文章主要介紹了詳解Java Callable接口實(shí)現(xiàn)多線程的方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 詳解Java中類與對(duì)象的關(guān)系

    詳解Java中類與對(duì)象的關(guān)系

    這篇文章主要介紹了詳解Java中類與對(duì)象的關(guān)系,類的關(guān)鍵字是class,在Java編程里,類的作用相當(dāng)于機(jī)械師手中的構(gòu)造圖,如果沒有構(gòu)造圖,就無(wú)法打造武器,同樣如果沒有類,就無(wú)法實(shí)例化,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

安陆市| 湄潭县| 忻州市| 福泉市| 微博| 宜川县| 塘沽区| 托克逊县| 新邵县| 固阳县| 霸州市| 千阳县| 东乡| 志丹县| 绍兴县| 美姑县| 蚌埠市| 东山县| 瑞昌市| 泰州市| 泸溪县| 沅江市| 扶沟县| 青川县| 盘锦市| 靖远县| 龙泉市| 平舆县| 韩城市| 永靖县| 宜川县| 南城县| 郑州市| 宣恩县| 庆安县| 阜城县| 株洲县| 临江市| 纳雍县| 珲春市| 兴宁市|