Spring Boot如何支持嵌入式Servlet容器
Spring Boot支持Tomcat、Jetty和Undertow三種Servlet容器嵌入到Web應(yīng)用程序中,開發(fā)者使用starter即可方便嵌入,默認(rèn)情況下,嵌入服務(wù)器的訪問端口為8080。
Servlets、Filters & Listeners
這些組件可以同組件掃描注冊,即把他們定義為Spring Bean。
默認(rèn)情況下,如果只有一個servlet,則把它映射到/;如果有多個servlet,則加上bean name作為前綴然后映射到/*。
如果默認(rèn)策略不能滿足你,你可以通過ServletRegistrationBean、FilterRegistrationBean和ServletListenerRegistrationBean來完全控制。
如果Filter需要按順序執(zhí)行,則可以通過@Order注解定義Filter的順序,或者實(shí)現(xiàn)Ordered接口。
容器初始化
嵌入式容器不會直接執(zhí)行Servlet 3.0+ javax.servlet.ServletContainerInitializer或org.springframework.web.WebApplicationInitializer,這是故意為之,是為了防止第三方包程序破壞Spring Boot應(yīng)用程序。
如果你需要執(zhí)行容器初始化,可以通過實(shí)現(xiàn)注冊一個org.springframework.web.WebApplicationInitializer Bean。這個接口只有一個方法onStartup,這個方法可以訪問ServletContext。
當(dāng)使用嵌入式容器時,可以通過@ServeltComponentScan啟用@WebServlet,@WebFilter和@WebListener注解。
ServletWebApplicationContext
ServletWebApplicationContext是一個特殊的WebApplicationContext,主要用于嵌入式Servelt。
自定義嵌入式容器
一般Servlet容器的普通配置可以通過Spring的Environment屬性配置,也就是在application.properties文件中配置。
支持的普通配置:
- 網(wǎng)絡(luò)設(shè)置:server.port服務(wù)端口; server.address服務(wù)地址。
- Session配置:server.servlet.session.presistent配置是否啟用session;
server.servlet.session.timeout配置session超時時間;
server.servlet.session.store-dir配置session存儲位置;
server.servlet.session.cookie.*配置session的cookie。
- 錯誤處理:錯誤頁面的位置server.error.path
- ssl
- http壓縮
Spring Boot盡量統(tǒng)一不容器的配置,但是有些配置是容器特有的,這種情況下可以使用容器特有配置,如server.tomcat,server.undertow。
JSP限制
當(dāng)采用嵌入式容器時,使用jsp有些限制:
- 可執(zhí)行jar不支持jsp
- undertow不支持jsp
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot打包部署到linux服務(wù)器的方法
這篇文章主要介紹了springboot打包部署到linux服務(wù)器的方法,通過實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06Java實(shí)戰(zhàn)之貪吃蛇小游戲(源碼+注釋)
這篇文章主要介紹了Java實(shí)戰(zhàn)之貪吃蛇小游戲(源碼+注釋),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Springboot?定時任務(wù)分布式下冪等性解決方案
這篇文章主要介紹了Springboot定時任務(wù)分布式下冪等性如何解決,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07springboot controller參數(shù)注入方式
這篇文章主要介紹了springboot controller參數(shù)注入方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05Mybatis中SqlSession接口中selectList方法詳解
這篇文章主要給大家介紹了關(guān)于Mybatis中SqlSession接口中selectList方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-03-03