Spring Boot:如何配置Undertow容器?不會(huì)我教你 | 超級(jí)詳細(xì)

環(huán)境說(shuō)明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE
一、前言
????作為springboot開(kāi)發(fā)者,使用最多的就是Tomcat,這是springboot默認(rèn)的容器技術(shù),而且是內(nèi)嵌式的Tomcat,springboot作為目前最火的Java Web框架,可以說(shuō)容器也起到了絕對(duì)的優(yōu)勢(shì)。對(duì)于一個(gè)應(yīng)用,我們也只需要將應(yīng)用打包成一個(gè)jar包,以java -jar直接運(yùn)行,而無(wú)需再打成war包的形式外搭tomcat服務(wù)器的方式運(yùn)行應(yīng)用。但是也會(huì)考慮使用Undertow容器去替代Tomcat;
????那Undertow容器到底是什么呢?跟Tomcat容器又有啥關(guān)聯(lián)或者區(qū)別?咱們接著往下看。
二、Undertow概述
????Undertow作為SpringBoot默認(rèn)集成的三大容器之一(Tomcat、Jetty、Undertow);首先它是Red Hat公司旗下的開(kāi)源產(chǎn)品, 由Java語(yǔ)言開(kāi)發(fā),是一款靈活的高性能Web服務(wù)器;不僅支持阻塞IO還支持非阻塞IO。由于Undertow通過(guò)java語(yǔ)言開(kāi)發(fā),即在java項(xiàng)目中使用可直接嵌入。而且,Undertow完全支持Servlet和Web Socket,在高并發(fā)情況下表現(xiàn)非常出色,總之,Undertow在性能和內(nèi)存使用方面都優(yōu)于Jetty、Tomcat。
????所以這就是為何業(yè)界內(nèi)很多springboot開(kāi)發(fā)者放棄Tomcat,選擇Undertow。
三、Undertow集成
????講了這么多,那么到底如何在項(xiàng)目集成Undertow呢?對(duì)于Undertow容器,SpringBoot也提供了對(duì)應(yīng)的starter,非常便捷。只不過(guò),由于springboot優(yōu)先默認(rèn)內(nèi)嵌的是tomcat,所以當(dāng)你在引入U(xiǎn)ndertow容器時(shí),你就需要先排除掉Tomcat,也就是它
spring-boot-starter-tomcat,因此你需要找到spring-boot-starter-web這個(gè)starter,把Tomcat去掉即可。
????如果不需要某個(gè)jar包就可以使用如下命令:
如上命令很多場(chǎng)景都適用,這點(diǎn)小伙伴們還是需要知曉并知道如何使用的,比如去除重復(fù)或者版本沖突的包等。
如下是具體依賴引入如下:
四、項(xiàng)目啟動(dòng)測(cè)試
????默認(rèn)Tomcat容器啟動(dòng),請(qǐng)看如下啟動(dòng)日志,當(dāng)控制臺(tái)輸出[ Tomcat started on port(s): 8080 (http) with context path '' ]則證明tomcat容器啟動(dòng)正常。
具體控制臺(tái)截圖如下:

而替換成Undertow容器,我們同樣重啟項(xiàng)目,查看控制臺(tái)輸出。
????當(dāng)你看到 [Undertow started on port(s) 8080 (http) ]的行輸出時(shí),說(shuō)明此時(shí)正在使用的是 Undertow 容器,而非 Tomcat容器。
具體控制臺(tái)截圖如下:

我們?yōu)榱朔蠈?shí)際測(cè)試,我們?cè)賮?lái)測(cè)試接口,看看是否會(huì)有異常產(chǎn)生。
????可以看到控制臺(tái),接口調(diào)用,測(cè)試無(wú)異常!

????總之:對(duì)于Undertow容器而言,相比Tomcat容器,其實(shí)對(duì)于性能和內(nèi)存使用方面,它兩之間還是存在很大的差別的,而具體的測(cè)試及對(duì)比,我將放在下期進(jìn)行教學(xué),大家可以敬請(qǐng)期待一下。
... ...
????ok,以上就是我這期的全部?jī)?nèi)容啦,如果還想學(xué)習(xí)更多,你可以看看我的往期熱文推薦哦,每天積累一個(gè)奇淫小知識(shí),日積月累下去,你一定能成為令人敬仰的大佬。
????「贈(zèng)人玫瑰,手留余香」,咱們下期拜拜~~