上一節(jié)中我們了解到在SpringBoot項目中webServer默認(rèn)支持的嵌入式容器是Tomcat,,還可以切換到Jetty、Undertow,。本節(jié)我們就將Tomcat切換到j(luò)etty,、undertow容器。 由于SpringBoot將Tomcat作為默認(rèn)的應(yīng)用容器,,因此在使用Jetty和Undertow容器之前要先把Tomcat的jar包排除掉,。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>12345678910復(fù)制代碼類型:[java] 使用Jetty容器: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>1234復(fù)制代碼類型:[java] 使用Undertow容器: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency>1234復(fù)制代碼類型:[java] 關(guān)于pom.xml文件配置,我們需要知道以上三者的優(yōu)先級順序是: Tomcat>Jetty>Undertow 使用Jetty,、Undertow時,,必須將Tomcat容器移除掉 使用Undertow時,,需要將Jetty的依賴移除掉,因為Jetty的優(yōu)先級高于Undertow 使用Jetty時,,Undertow的依賴可以不移除 配置參數(shù)在官方文檔編號11中可以找到關(guān)于Jetty,、Undertow的配置參數(shù): https://docs./spring-boot/docs/current/reference/html/application-properties.html#application-properties.server 常用配置參數(shù)Jetty
Undertow
在application.yml文件中的寫法Jetty server: port: 8888 jetty: # 要使用的接受器線程數(shù),,默認(rèn)值為-1 acceptors: -1 # 要使用的選擇器線程數(shù),,默認(rèn)值為-1 selectors: -1 # 工作線程池最小線程數(shù)量,默認(rèn)值為8 min-threads: 8 # 工作線程池最大線程數(shù)量,,默認(rèn)值為200 max-threads: 2001234567891011復(fù)制代碼類型:[java] Undertow server: port: 8888 undertow: # 創(chuàng)建的 I/O 線程數(shù),。默認(rèn)值來自可用處理器的數(shù)量 io-threads: 5 # 工作任務(wù)線程數(shù)。默認(rèn)值是 I/O 線程數(shù)的 8 倍 worker-threads: 40 # 用于url解碼的字符集,,默認(rèn)值為UTF-8 url-charset: UTF-8123456789復(fù)制代碼類型:[java] Undertow的性能和內(nèi)存使用方面都優(yōu)于Tomcat,,在高并發(fā)系統(tǒng)中,Tomcat相對來說比較弱,。 在相同的機器配置下,,模擬相等的請求數(shù),Undertow在性能和內(nèi)存使用方面都是最優(yōu)的,。 在之前我們所有的應(yīng)用代碼都是用jar包的方式去運行的,,下面我們來學(xué)習(xí)如何打war包。 為了方便演示,,重新創(chuàng)建一個SpringBoot項目,。重新創(chuàng)建的過程與之前想同,,需要注意的是打包方式這次直接選擇war包: 新的項目創(chuàng)建好后,,在com.example.demo文件夾下創(chuàng)建controller文件夾并在其中創(chuàng)建TemplateController.java package com.example.demo.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TemplateController { @GetMapping("/template") public String test(String name) { return "Hello " + name; } }123456789101112復(fù)制代碼類型:[java] 之后在pom.xml中的build代碼段添加應(yīng)用最終構(gòu)建打包的名稱: <finalName>family</finalName>1復(fù)制代碼類型:[java] 在idea下方的Terminal中編寫命令: mvn clean package1復(fù)制代碼類型:[java] 打包結(jié)果將存儲在項目的target目錄下面,將war包移動到Tomcat的webapps目錄中,。 在tomcat的bin目錄下執(zhí)行startup.sh(linux)/startup.bat(windows),。 由于Tomcat在占用的是8080端口,所以在瀏覽器進(jìn)行測試時輸入的鏈接應(yīng)為:http://localhost:8080/family/template?name=world 得到返回結(jié)果,。 |
|