springboot2.3.1替換為其他的嵌入式servlet容器的詳細(xì)方法
現(xiàn)階段,springboot內(nèi)嵌了Tomcat服務(wù)器,如果你不想使用Tomcat,springboot也是支持其他的服務(wù)器切換的。
如果你想了解底層springboot所支持的服務(wù)器你可以使用idea的快捷鍵快速按兩次shift查詢一個(gè)ServerProperties 的類,通過這個(gè)類你可以知道你想要了解的情況:

springboot里面支持的服務(wù)器有Jetty、Netty…等等,大家有興趣的話可以百度一下。
接著通過在pom文件的視圖依賴分析可以得知:

springboot里面的Tomcat是在spring-boot-starter-web下,
所以我們?nèi)绻枰袚Q服務(wù)器的話,需要先移除了spring-boot-starter-web里面的Tomcat依賴,再建立你想要切換的服務(wù)器。
<!--排除Tomcat starter-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--引入其他的jetty starter容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
在嵌入式servlet容器啟動(dòng)的時(shí)候需要先配置一個(gè)servlet類繼承HttpServlet并且實(shí)現(xiàn)get和post的方法:
package com.example.springbootdemo.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author Think
*/
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("hello,MyServlet");
}
}
配置好了之后我們才可以定制自己想要定制的規(guī)則
springboot1X和springboot2X定制之間會(huì)有所差異:
2X
/**
* 配置嵌入式的servlet容器的相關(guān)規(guī)則
* @return
*/
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
return new WebServerFactoryCustomizer<ConfigurableWebServerFactory >() {
@Override
public void customize(ConfigurableWebServerFactory factory) {
//設(shè)置服務(wù)器啟動(dòng)的端口號(hào)為8090
factory.setPort(8090);
}
};
}
1X
@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer(){
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
//設(shè)置服務(wù)器啟動(dòng)的端口號(hào)為8090
container.setPort(8090);
}
};
}
配置好之后之間重啟一下服務(wù)器。
在這里給大家展示一下我切換Jetty的運(yùn)行結(jié)果:

當(dāng)出現(xiàn)類似紅色方框的字體的時(shí)候,說明就配置成功了。
如果你想了解更多的底層源碼,你可以到一些學(xué)習(xí)的網(wǎng)站了解更多比如嗶哩嗶哩、掘金、Stack Overflow…等。
springboot會(huì)隨著時(shí)代的發(fā)展而不斷的更新,所以如果版本更新了,這里就可能不是你想要的答案了,那么你需要再繼續(xù)去尋找合理的答案。只要不放棄,你想要的答案總是能找到的。
到此這篇關(guān)于springboot2.3.1替換為其他的嵌入式servlet容器的詳細(xì)方法的文章就介紹到這了,更多相關(guān)springboot嵌入式servlet容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)國(guó)產(chǎn)sm4加密算法
這篇文章主要介紹了java實(shí)現(xiàn)國(guó)產(chǎn)sm4加密算法的步驟,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-12-12
使用maven插件對(duì)java工程進(jìn)行打包過程解析
這篇文章主要介紹了使用maven插件對(duì)java工程進(jìn)行打包過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
在Java項(xiàng)目中實(shí)現(xiàn)日志輸出的技巧分享
日志是開發(fā)過程中不可或缺的一部分,它可以幫助我們追蹤代碼的執(zhí)行過程、排查問題以及監(jiān)控系統(tǒng)運(yùn)行狀況,然而,大多數(shù)開發(fā)人員在編寫日志時(shí)往往只關(guān)注于輸出必要的信息,而忽略了日志的可讀性和美觀性,本文將介紹如何在Java項(xiàng)目中實(shí)現(xiàn)漂亮的日志輸出2023-10-10
springboot中request和response的加解密實(shí)現(xiàn)代碼
這篇文章主要介紹了springboot中request和response的加解密實(shí)現(xiàn),在springboot中提供了RequestBodyAdviceAdapter和ResponseBodyAdvice,利用這兩個(gè)工具可以非常方便的對(duì)請(qǐng)求和響應(yīng)進(jìn)行預(yù)處理,需要的朋友可以參考下2022-06-06
SpringBoot整合flyway實(shí)現(xiàn)自動(dòng)創(chuàng)建表的方法
這篇文章主要介紹了SpringBoot整合flyway實(shí)現(xiàn)自動(dòng)創(chuàng)建表的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03

