最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot嵌入式Web容器原理與使用介紹

 更新時(shí)間:2022年10月20日 15:28:02   作者:劉婉晴  
Web開(kāi)發(fā)的核心內(nèi)容主要包括內(nèi)嵌的Servlet容器和SpringMVCSpringBoot使用起來(lái)非常簡(jiǎn)潔,大部分配置都有SpringBoot自動(dòng)裝配,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

嵌入式 Web 容器:應(yīng)用中內(nèi)置服務(wù)器(Tomcat),不用在外部配置服務(wù)器了

原理

  • SpringBoot 項(xiàng)目啟動(dòng),發(fā)現(xiàn)是 web 應(yīng)用,引入 web 場(chǎng)景包 ----- 如:Tomcat
  • web 應(yīng)用創(chuàng)建一個(gè) web 版的 IOC 容器 ServletWebServerApplicationContext
  • ServletWebServerApplicationContext 啟動(dòng)的時(shí)候?qū)ふ?ServletWebServerFactory (Servlet 的 web 服務(wù)器工廠,用于生產(chǎn) Servlet 服務(wù)器)
  • ServletWebServerFactory 底層默認(rèn)有很多 Web 服務(wù)器工廠

  • 底層會(huì)自動(dòng)配置好 ,自動(dòng)配置類 ServletWebServerFactoryAutoConfiguration
  • ServletWebServerFactoryAutoConfiguration 導(dǎo)入 ServletWebServerFactoryConfiguration 工廠配置類

ServletWebServerFactoryConfiguration.class

  • 動(dòng)態(tài)判斷系統(tǒng)中導(dǎo)入了那個(gè)web服務(wù)器配置包
  • 如果導(dǎo)入 Tomcat 依賴,會(huì)自動(dòng)放一個(gè) Tomcat 服務(wù)器工廠, TomcatServletWebServerFactory 為我們創(chuàng)建出 Tomcat 服務(wù)器工廠
  • Tomcat 底層支持如下服務(wù)器

	@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);
	}

總結(jié): 所謂內(nèi)嵌服務(wù)器,就是把我們手動(dòng)啟動(dòng)服務(wù)器的方法放進(jìn)框架中了。

應(yīng)用

1. 切換Web服務(wù)器

排除 tomcat 服務(wù)器,導(dǎo)入 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>

2. 定制服務(wù)器規(guī)則

方法一: 修改 server 下的配置文件

ServerProperties.class

server.undertow.accesslog.dir=/tmp

方法二: 自定義 ConfigurableServletWebServerFactory

方法三: 自定義 ServletWebServerFactoryCustomizer 定制化器

作用: 將配置文件的值,與 ServletWebServerFactory 綁定

SpringBoot 設(shè)計(jì): Customizer 定制化器,可以定制 XXX 規(guī)則

到此這篇關(guān)于SpringBoot嵌入式Web容器原理與使用介紹的文章就介紹到這了,更多相關(guān)SpringBoot嵌入式Web容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot自定義攔截器簡(jiǎn)單使用及舉例

    springboot自定義攔截器簡(jiǎn)單使用及舉例

    Spring Boot攔截器是AOP的一種實(shí)現(xiàn),專門攔截對(duì)控制層的請(qǐng)求,主要應(yīng)用于判斷用戶權(quán)限,攔截webSocket請(qǐng)求,下面這篇文章主要給大家介紹了關(guān)于springboot自定義攔截器簡(jiǎn)單使用及舉例的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 解決@Transactional注解事務(wù)不回滾不起作用的問(wèn)題

    解決@Transactional注解事務(wù)不回滾不起作用的問(wèn)題

    這篇文章主要介紹了解決@Transactional注解事務(wù)不回滾不起作用的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java中一個(gè)線程執(zhí)行死循環(huán)有什么后果

    Java中一個(gè)線程執(zhí)行死循環(huán)有什么后果

    這篇文章主要為大家詳細(xì)介紹了Java中一個(gè)線程執(zhí)行死循環(huán)有什么后果,當(dāng)一個(gè)線程在執(zhí)行死循環(huán)時(shí)會(huì)影響另外一個(gè)線程嗎,下面為大家揭曉
    2016-05-05
  • Spring+Mybatis動(dòng)態(tài)切換數(shù)據(jù)源的方法

    Spring+Mybatis動(dòng)態(tài)切換數(shù)據(jù)源的方法

    這篇文章主要為大家詳細(xì)介紹了Spring+Mybatis動(dòng)態(tài)切換數(shù)據(jù)源的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • maven 打包項(xiàng)目的幾種方式

    maven 打包項(xiàng)目的幾種方式

    maven目前在web上面的使用方式很普遍,而打包的方式也存在很多方式,本文就詳細(xì)的介紹了三種方式,具有一定的參考價(jià)值,感興趣的可以了解下
    2021-06-06
  • 詳解SpringCloud-OpenFeign組件的使用

    詳解SpringCloud-OpenFeign組件的使用

    這篇文章主要介紹了SpringCloud-OpenFeign組件的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • JVM原理之完整的一次GC流程解讀

    JVM原理之完整的一次GC流程解讀

    這篇文章主要介紹了JVM原理之完整的一次GC流程解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Spring實(shí)戰(zhàn)之搜索Bean類操作示例

    Spring實(shí)戰(zhàn)之搜索Bean類操作示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之搜索Bean類操作,結(jié)合實(shí)例形式分析了Spring搜索Bean類的相關(guān)配置、接口實(shí)現(xiàn)與操作技巧,需要的朋友可以參考下
    2019-12-12
  • java 中JDBC連接數(shù)據(jù)庫(kù)代碼和步驟詳解及實(shí)例代碼

    java 中JDBC連接數(shù)據(jù)庫(kù)代碼和步驟詳解及實(shí)例代碼

    這篇文章主要介紹了java 中JDBC連接數(shù)據(jù)庫(kù)代碼和步驟詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java/Spring項(xiàng)目的包開(kāi)頭為什么是com詳解

    Java/Spring項(xiàng)目的包開(kāi)頭為什么是com詳解

    這篇文章主要介紹了Java/Spring項(xiàng)目的包開(kāi)頭為什么是com的相關(guān)資料,在Java中包命名遵循域名反轉(zhuǎn)規(guī)則,即使用公司的域名反轉(zhuǎn)作為包的前綴,以確保其全球唯一性和避免命名沖突,這種規(guī)則有助于邏輯分層、代碼可讀性提升和標(biāo)識(shí)代碼來(lái)源,需要的朋友可以參考下
    2024-10-10

最新評(píng)論

大埔县| 阿鲁科尔沁旗| 洱源县| 政和县| 宜丰县| 东丰县| 台北市| 灌阳县| 弥勒县| 齐齐哈尔市| 昌吉市| 珠海市| 扶余县| 漳平市| 沁阳市| 淳化县| 庄浪县| 武强县| 托克托县| 昆山市| 东阿县| 和平县| 鄂州市| 淄博市| 芮城县| 吕梁市| 阜康市| 台江县| 泰顺县| 大同县| 镇平县| 泰和县| 娱乐| 金塔县| 菏泽市| 霍林郭勒市| 云南省| 香河县| 灵石县| 寻乌县| 厦门市|