亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot超詳細(xì)講解自動(dòng)配置原理

 更新時(shí)間:2022年06月22日 09:45:47   作者:昱晟168  
在進(jìn)行項(xiàng)目編寫(xiě)前,我們還需要知道一個(gè)東西,就是SpringBoot對(duì)我們的SpringMVC還做了哪些配置,包括如何擴(kuò)展,如何定制,只有把這些都搞清楚了,我們?cè)谥笫褂貌艜?huì)更加得心應(yīng)手

SpringBoot自動(dòng)配置原理

了解SpringBoot自動(dòng)配置原理

1.SpringBoot特點(diǎn)

2.容器功能

3.自動(dòng)配置原理入門(mén)

4.開(kāi)發(fā)技巧

SpringBoot特點(diǎn)

1.依賴(lài)管理

A.父項(xiàng)目做依賴(lài)管理

父項(xiàng)目做依賴(lài)管理作用:是控制導(dǎo)入的依賴(lài)版本號(hào)

父項(xiàng)目管理

	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.7</version>
    </parent>

上面的父項(xiàng)目是:

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.6.7</version>
  </parent>

所以:幾乎聲明了所有開(kāi)發(fā)中常用的依賴(lài)的版本號(hào),自動(dòng)版本仲裁機(jī)制

父項(xiàng)目管理的作用是:引入的依賴(lài)的認(rèn)都可以不寫(xiě)版本,會(huì)自動(dòng)版本號(hào)仲裁機(jī)制,但是引入非版本仲裁的依賴(lài)時(shí),需要寫(xiě)版本號(hào)

B.開(kāi)發(fā)導(dǎo)入starter場(chǎng)景啟動(dòng)器

starter場(chǎng)景啟動(dòng)器的作用就是引入所有相關(guān)依賴(lài),而父項(xiàng)目管理就是控制依賴(lài)的版本號(hào)

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

1、見(jiàn)到很多 spring-boot-starter-* : *就某種場(chǎng)景
2、只要引入starter,這個(gè)場(chǎng)景的所有常規(guī)需要的依賴(lài)我們都自動(dòng)引入
3、SpringBoot所有支持的場(chǎng)景【參考下面地址】
https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter

4、見(jiàn)到的  *-spring-boot-starter: 第三方為我們提供的簡(jiǎn)化開(kāi)發(fā)的場(chǎng)景啟動(dòng)器。

5、所有場(chǎng)景啟動(dòng)器最底層的依賴(lài)【也就是核心依賴(lài)】

C.可以修改默認(rèn)版本號(hào)

當(dāng)版本仲裁的版本號(hào)不符合我們的開(kāi)發(fā)要求時(shí),可以修改默認(rèn)的版本號(hào)

第一步:先查詢(xún)父項(xiàng)目管理的版本號(hào)

第二步:使用properties版本號(hào)覆蓋仲裁版本號(hào)

第三步:引入依賴(lài)

例如:

步驟1、查看spring-boot-dependencies里面規(guī)定當(dāng)前依賴(lài)的版本 用的 key。
步驟2、在當(dāng)前項(xiàng)目里面重寫(xiě)配置

    <properties>
        <mysql.version>5.1.43</mysql.version>
    </properties>

步驟3: 

    <dependencys>
       <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
       </dependency>
    </dependencys>

2.自動(dòng)配置

A.自動(dòng)配好Tomcat

第一步:引入Tomcat依賴(lài)

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.3.4.RELEASE</version>
      <scope>compile</scope>
    </dependency>

第二步:配置Tomcat服務(wù)器

B.自動(dòng)配好SpringMVC

第一步:引入SpringMVC全套組件

第二步:自動(dòng)配置好SpringMVC常用組件功能,如:注冊(cè)過(guò)濾器[字符編碼問(wèn)題],前端控制器,視圖解析器,文件上傳解析器,異常處理組件 ,攔截器等等。

SpringBoot幫我們配置好了所有web開(kāi)發(fā)的常見(jiàn)場(chǎng)景

C.默認(rèn)的包結(jié)構(gòu)

在主程序下的所有包及其下面的所有子包里面的組件都會(huì)默認(rèn)掃描進(jìn)來(lái),無(wú)需以前的包掃描配置

如:主要按照下面的主程序結(jié)構(gòu)就能默認(rèn)掃描到

案例:

如果需要改變默認(rèn)掃描配置的兩種方式:

方式一:在@SpringBootApplication注解中的scanBasePackages屬性設(shè)置掃描配置

@SpringBootApplication(scanBasePackages={"com.haikang"})

方式二:使用另外的三個(gè)注解,代替@SpringBootApplication注解,并在@ComponentScan注解中指定掃描路徑

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.haikang")

D.各種配置擁有默認(rèn)值

  • 默認(rèn)配置最終都是映射到相關(guān)指定的類(lèi)上,如:MultipartProperties文件上傳默認(rèn)配置類(lèi)
  • 配置文件的值最終綁定指定類(lèi)上,這個(gè)類(lèi)會(huì)在容器中創(chuàng)建對(duì)象

E.按需要加載所有自動(dòng)配置項(xiàng)

  • 由于有非常多的starter,是引入了哪些場(chǎng)景這個(gè)場(chǎng)景的自動(dòng)配置才會(huì)開(kāi)戶(hù)
  • SpringBoot所有的自動(dòng)配置功能都在spring-boot-autoconfigure包里面

到此這篇關(guān)于SpringBoot超詳細(xì)講解自動(dòng)配置原理的文章就介紹到這了,更多相關(guān)SpringBoot自動(dòng)配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中List列表去重有序和無(wú)序的6種方法

    Java中List列表去重有序和無(wú)序的6種方法

    在日常的業(yè)務(wù)開(kāi)發(fā)中,會(huì)遇到List中的重復(fù)數(shù)據(jù)去除掉的場(chǎng)景,本文就來(lái)介紹一下Java中List列表去重有序和無(wú)序的6種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • mybatis判斷l(xiāng)ist不為空/大小的問(wèn)題

    mybatis判斷l(xiāng)ist不為空/大小的問(wèn)題

    這篇文章主要介紹了mybatis判斷l(xiāng)ist不為空/大小的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java實(shí)現(xiàn)簡(jiǎn)單的驗(yàn)證碼功能

    java實(shí)現(xiàn)簡(jiǎn)單的驗(yàn)證碼功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單的驗(yàn)證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Spring JPA整合QueryDSL的示例代碼

    Spring JPA整合QueryDSL的示例代碼

    這篇文章主要介紹了Spring JPA整合QueryDSL的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • SSH框架網(wǎng)上商城項(xiàng)目第9戰(zhàn)之添加和更新商品類(lèi)別功能實(shí)現(xiàn)

    SSH框架網(wǎng)上商城項(xiàng)目第9戰(zhàn)之添加和更新商品類(lèi)別功能實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第9戰(zhàn)之添加和更新商品類(lèi)別功能實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2016-06-06
  • zuulGateway 通過(guò)filter統(tǒng)一修改返回值的操作

    zuulGateway 通過(guò)filter統(tǒng)一修改返回值的操作

    這篇文章主要介紹了zuulGateway 通過(guò)filter統(tǒng)一修改返回值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Java遞歸尋路實(shí)現(xiàn),你真的理解了嗎

    Java遞歸尋路實(shí)現(xiàn),你真的理解了嗎

    遞歸就是一個(gè)過(guò)程或函數(shù)在其定義或說(shuō)明中有直接或間接調(diào)用自身的一種方法,它通常把一個(gè)大型復(fù)雜的問(wèn)題層層轉(zhuǎn)化為一個(gè)與原問(wèn)題相似的規(guī)模較小的問(wèn)題來(lái)求解,需要的朋友可以參考下
    2021-08-08
  • 最新評(píng)論