這篇文章將為大家詳細講解有關springboot2.3.1如何替換為其他嵌入式servlet容器,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
現階段,springboot內嵌了Tomcat服務器,如果你不想使用Tomcat,springboot也是支持其他的服務器切換的。
如果你想了解底層springboot所支持的服務器你可以使用idea的快捷鍵快速按兩次shift查詢一個ServerProperties 的類,通過這個類你可以知道你想要了解的情況:

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

springboot里面的Tomcat是在spring-boot-starter-web下,
所以我們如果需要切換服務器的話,需要先移除了spring-boot-starter-web里面的Tomcat依賴,再建立你想要切換的服務器。
<!--排除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容器啟動的時候需要先配置一個servlet類繼承HttpServlet并且實現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");
}
}配置好了之后我們才可以定制自己想要定制的規則
springboot1X和springboot2X定制之間會有所差異:
2X
/**
* 配置嵌入式的servlet容器的相關規則
* @return
*/
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
return new WebServerFactoryCustomizer<ConfigurableWebServerFactory >() {
@Override
public void customize(ConfigurableWebServerFactory factory) {
//設置服務器啟動的端口號為8090
factory.setPort(8090);
}
};
}1X
@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer(){
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
//設置服務器啟動的端口號為8090
container.setPort(8090);
}
};
}配置好之后之間重啟一下服務器。
在這里給大家展示一下我切換Jetty的運行結果:

當出現類似紅色方框的字體的時候,說明就配置成功了。
如果你想了解更多的底層源碼,你可以到一些學習的網站了解更多比如嗶哩嗶哩、掘金、Stack Overflow…等。
springboot會隨著時代的發展而不斷的更新,所以如果版本更新了,這里就可能不是你想要的答案了,那么你需要再繼續去尋找合理的答案。只要不放棄,你想要的答案總是能找到的。
關于springboot2.3.1如何替換為其他嵌入式servlet容器就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。