springboot2.3.1替換為其他的嵌入式servlet容器的詳細(xì)方法
現(xiàn)階段,springboot內(nèi)嵌了Tomcat服務(wù)器,如果你不想使用Tomcat,springboot也是支持其他的服務(wù)器切換的。
如果你想了解底層springboot所支持的服務(wù)器你可以使用idea的快捷鍵快速按兩次shift查詢一個(gè)ServerProperties 的類,通過(guò)這個(gè)類你可以知道你想要了解的情況:
springboot里面支持的服務(wù)器有Jetty、Netty…等等,大家有興趣的話可以百度一下。
接著通過(guò)在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)為8090factory.setPort(8090); } }; }
1X
@Beanpublic 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í)候,說(shuō)明就配置成功了。如果你想了解更多的底層源碼,你可以到一些學(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)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. js實(shí)現(xiàn)貪吃蛇小游戲(加墻)2. JVM之class文件結(jié)構(gòu)3. js實(shí)現(xiàn)跳一跳小游戲4. asp.net core 認(rèn)證和授權(quán)實(shí)例詳解5. Ajax報(bào)錯(cuò)400的參考解決辦法6. Python中Anaconda3 安裝gdal庫(kù)的方法7. 詳解IE6中的position:fixed問(wèn)題與隨滾動(dòng)條滾動(dòng)的效果8. CSS linear-gradient屬性案例詳解9. Python selenium模擬網(wǎng)頁(yè)點(diǎn)擊爬蟲交管12123違章數(shù)據(jù)10. JSP實(shí)現(xiàn)百萬(wàn)富翁猜數(shù)字游戲
