您好,登錄后才能下訂單哦!
這篇“SpringBoot嵌入式Web容器如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SpringBoot嵌入式Web容器如何使用”文章吧。
嵌入式 Web 容器:應用中內置服務器(Tomcat),不用在外部配置服務器了
SpringBoot 項目啟動,發現是 web 應用,引入 web 場景包 ----- 如:Tomcat
web 應用創建一個 web 版的 IOC 容器 ServletWebServerApplicationContext
ServletWebServerApplicationContext 啟動的時候尋找 ServletWebServerFactory (Servlet 的 web 服務器工廠,用于生產 Servlet 服務器)
ServletWebServerFactory 底層默認有很多 Web 服務器工廠
底層會自動配置好 ,自動配置類 ServletWebServerFactoryAutoConfiguration
ServletWebServerFactoryAutoConfiguration 導入 ServletWebServerFactoryConfiguration 工廠配置類
ServletWebServerFactoryConfiguration.class
動態判斷系統中導入了那個web服務器配置包
如果導入 Tomcat 依賴,會自動放一個 Tomcat 服務器工廠, TomcatServletWebServerFactory 為我們創建出 Tomcat 服務器工廠
Tomcat 底層支持如下服務器
@Override public WebServer getWebServer(ServletContextInitializer... initializers) { if (this.disableMBeanRegistry) { Registry.disableRegistry(); } Tomcat tomcat = new Tomcat(); File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat"); tomcat.setBaseDir(baseDir.getAbsolutePath()); Connector connector = new Connector(this.protocol); connector.setThrowOnFailure(true); tomcat.getService().addConnector(connector); customizeConnector(connector); tomcat.setConnector(connector); tomcat.getHost().setAutoDeploy(false); configureEngine(tomcat.getEngine()); for (Connector additionalConnector : this.additionalTomcatConnectors) { tomcat.getService().addConnector(additionalConnector); } prepareContext(tomcat.getHost(), initializers); return getTomcatWebServer(tomcat); }
總結: 所謂內嵌服務器,就是把我們手動啟動服務器的方法放進框架中了。
排除 tomcat 服務器,導入 undertow 依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency>
方法一: 修改 server 下的配置文件
ServerProperties.class
server.undertow.accesslog.dir=/tmp
方法二: 自定義 ConfigurableServletWebServerFactory
方法三: 自定義 ServletWebServerFactoryCustomizer 定制化器
作用: 將配置文件的值,與 ServletWebServerFactory 綁定
SpringBoot 設計: Customizer 定制化器,可以定制 XXX 規則
以上就是關于“SpringBoot嵌入式Web容器如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。