亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring Boot如何優(yōu)化內(nèi)嵌的Tomcat示例詳解

 更新時間:2017年09月07日 15:18:55   作者:西夏一品堂  
spring boot默認(rèn)web程序啟用tomcat內(nèi)嵌容器,監(jiān)聽8080端口,下面這篇文章主要給大家介紹了關(guān)于Spring Boot如何優(yōu)化內(nèi)嵌Tomcat的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。

前言

本文主要給大家介紹了關(guān)于Spring Boot優(yōu)化內(nèi)嵌Tomcat的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一看看詳細(xì)的介紹吧。

Spring Boot測試版本

<parent> 
 <groupId>org.springframework.boot</groupId> 
 <artifactId>spring-boot-starter-parent</artifactId> 
 <version>1.3.3.RELEASE</version> 
</parent> 
<dependencies> 
 <dependency> 
  <groupId>org.springframework.boot</groupId> 
  <artifactId>spring-boot-starter-web</artifactId> 
 </dependency> 
</dependencies> 

SpringBoot默認(rèn)使用的是Tomcat作為web server

springboot中默認(rèn)可以通過配置如下參數(shù)設(shè)置內(nèi)嵌容器Tomcat的端口,最大線程數(shù)等等

server.port=8081
server.tomcat.max-threads=1000

但是,無法設(shè)置最大連接數(shù),而最大連接數(shù)直接影響到Tomcat的性能,如何調(diào)整這個最大連接數(shù)呢?

以下有三種方法

第一種:

package com.web.server; 
 
import org.apache.catalina.connector.Connector; 
import org.apache.coyote.http11.Http11NioProtocol; 
import org.springframework.boot.context.embedded.EmbeddedServletContainer; 
import org.springframework.boot.context.embedded.ServletContextInitializer; 
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; 
import org.springframework.stereotype.Component; 
 
@Component() 
public class MyEmbeddedServletContainerFactory extends TomcatEmbeddedServletContainerFactory 
{ 
 public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers) 
 { 
  //設(shè)置端口 
  this.setPort(8081); 
  return super.getEmbeddedServletContainer(initializers); 
 } 
  
 protected void customizeConnector(Connector connector) 
 { 
  super.customizeConnector(connector); 
  Http11NioProtocol protocol = (Http11NioProtocol)connector.getProtocolHandler(); 
  //設(shè)置最大連接數(shù) 
  protocol.setMaxConnections(2000); 
  //設(shè)置最大線程數(shù) 
  protocol.setMaxThreads(2000); 
  protocol.setConnectionTimeout(30000); 
 } 
} 

第二種:

package com.web.server; 
 
import org.apache.catalina.connector.Connector; 
import org.apache.coyote.http11.Http11NioProtocol; 
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; 
import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer; 
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
 
@Configuration 
public class WebServerConfiguration 
{ 
 @Bean 
 public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory() 
 { 
  TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory(); 
  tomcatFactory.setPort(8081); 
  tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer()); 
  return tomcatFactory; 
 } 
} 
class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer 
{ 
 public void customize(Connector connector) 
 { 
  Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler(); 
  //設(shè)置最大連接數(shù) 
  protocol.setMaxConnections(2000); 
  //設(shè)置最大線程數(shù) 
  protocol.setMaxThreads(2000); 
  protocol.setConnectionTimeout(30000); 
 } 
} 

第三種:

package com.web.server; 
 
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; 
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; 
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
 
@Configuration 
public class WebServerConfiguration 
{ 
 @Bean 
 public EmbeddedServletContainerCustomizer createEmbeddedServletContainerCustomizer() 
 { 
  return new MyEmbeddedServletContainerCustomizer(); 
 } 
} 
 
class MyEmbeddedServletContainerCustomizer implements EmbeddedServletContainerCustomizer 
{ 
 public void customize(ConfigurableEmbeddedServletContainer container) 
 { 
  TomcatEmbeddedServletContainerFactory tomcatFactory = (TomcatEmbeddedServletContainerFactory)container; 
  tomcatFactory.setPort(8081); 
  //下面的操作可以參照上面的方法 
 } 
} 

最后,如果發(fā)現(xiàn)沒有生效,就把a(bǔ)pplication.properties配置里面關(guān)于Tomcat的一些配置(server.*)全部刪掉,就OK了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 攔截Druid數(shù)據(jù)源自動注入帳密解密實(shí)現(xiàn)詳解

    攔截Druid數(shù)據(jù)源自動注入帳密解密實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了攔截Druid數(shù)據(jù)源自動注入帳密解密實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Spring Boot利用Docker快速部署項(xiàng)目的完整步驟

    Spring Boot利用Docker快速部署項(xiàng)目的完整步驟

    這篇文章主要給大家介紹了關(guān)于Spring Boot利用Docker快速部署項(xiàng)目的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Java代理模式的示例詳解

    Java代理模式的示例詳解

    代理模式(Proxy Parttern)為一個對象提供一個替身,來控制這個對象的訪問,即通過代理對象來訪問目標(biāo)對象。本文將通過示例詳細(xì)講解一下這個模式,需要的可以參考一下
    2022-02-02
  • JPA實(shí)現(xiàn)多條件分頁查詢

    JPA實(shí)現(xiàn)多條件分頁查詢

    這篇文章主要介紹了JPA實(shí)現(xiàn)多條件分頁查詢方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 在mybatis中如何將Map作為參數(shù)

    在mybatis中如何將Map作為參數(shù)

    這篇文章主要介紹了在mybatis中如何將Map作為參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • MyBatis源碼淺析(一)開篇

    MyBatis源碼淺析(一)開篇

    源碼的學(xué)習(xí)好處多多,Mybatis源碼量少、邏輯簡單。下面將通過本文給大家詳解,低mybatis源碼淺析感興趣的朋友一起看看吧
    2016-11-11
  • Java 數(shù)據(jù)流之Broadcast State

    Java 數(shù)據(jù)流之Broadcast State

    這篇文章主要介紹了Java 數(shù)據(jù)流之Broadcast State,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • java判斷空的實(shí)現(xiàn)方法

    java判斷空的實(shí)現(xiàn)方法

    字符串判斷空有兩種情況:一個是分配了內(nèi)存但值為空(""),另一個是未分配內(nèi)存(null),判斷方法包括isEmpty()和isBlank(),其中isBlank()還可以過濾空格、制表符,對于列表,判斷不為空可以使用list!=null && !list.isEmpty()或list!=null && list.size()>0
    2024-09-09
  • spring boot整合CAS配置詳解

    spring boot整合CAS配置詳解

    這篇文章主要介紹了spring boot整合CAS配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java高級特性基礎(chǔ)之反射五連問

    Java高級特性基礎(chǔ)之反射五連問

    反射賦予了我們在運(yùn)行時分析類以及執(zhí)行類中方法的能力。通過反射你可以獲取任意一個類的所有屬性和方法,你還可以調(diào)用這些方法和屬性。本文就來和大家詳細(xì)聊聊Java中的反射,感興趣的可以了解一下
    2023-01-01

最新評論