日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

springboot 获取配置文件中的值_Spring Boot面试必问(亲测)

發(fā)布時(shí)間:2025/3/20 javascript 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot 获取配置文件中的值_Spring Boot面试必问(亲测) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

springboot面試大概率會(huì)問(wèn)到的問(wèn)題:什么是Spring Boot?Spring Boot與Spring cloud的區(qū)別Spring Boot有哪些特性Spring Boot配置文件的優(yōu)先級(jí)

1、什么是Spring Boot?

Spring Boot是spring的腳手架,使用Spring Boot可以做到專注于Spring應(yīng)用的開(kāi)發(fā),而無(wú)需過(guò)多關(guān)注XML的配置。能夠使開(kāi)發(fā)者在極短的時(shí)間內(nèi)開(kāi)發(fā)出單個(gè)微服務(wù)。Spring Boot使用“習(xí)慣優(yōu)于配置”的理念,簡(jiǎn)單來(lái)說(shuō),它提供了一堆依賴打包,并已經(jīng)按照使用習(xí)慣解決了依賴問(wèn)題。使用Spring Boot可以不用或者只需要很少的Spring配置就可以讓企業(yè)項(xiàng)目快速運(yùn)行起來(lái)。

Spring Boot的核心功能:

  • 可獨(dú)立運(yùn)行的Spring項(xiàng)目:Spring Boot可以以jar包的形式獨(dú)立運(yùn)行。
  • 內(nèi)嵌的Servlet容器:Spring Boot可以選擇內(nèi)嵌Tomcat、Jetty或者Undertow,無(wú)須以war包形式部署項(xiàng)目。
  • 簡(jiǎn)化的Maven配置:Spring提供推薦的基礎(chǔ) POM 文件來(lái)簡(jiǎn)化Maven 配置。
  • 自動(dòng)配置Spring:Spring Boot會(huì)根據(jù)項(xiàng)目依賴來(lái)自動(dòng)配置Spring 框架,極大地減少項(xiàng)目要使用的配置。
  • 提供生產(chǎn)就緒型功能:提供可以直接在生產(chǎn)環(huán)境中使用的功能,如性能指標(biāo)、應(yīng)用信息和應(yīng)用健康檢查。
  • 無(wú)代碼生成和xml配置:Spring Boot不生成代碼。完全不需要任何xml配置即可實(shí)現(xiàn)Spring的所有配置。

2、Spring Boot與Spring cloud的區(qū)別

  • Spring boot是Spring的一套快速配置腳手架,可以基于Spring Boot快速開(kāi)發(fā)單個(gè)微服務(wù);Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開(kāi)發(fā)工具
  • Spring Boot專注于快速、方便集成的單個(gè)個(gè)體,Spring Cloud是關(guān)注全局的服務(wù)治理框架;
  • Spring boot使用了默認(rèn)大于配置的理念,很多集成方案已經(jīng)幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot來(lái)實(shí)現(xiàn)。
  • Spring Boot可以離開(kāi)Spring Cloud獨(dú)立使用開(kāi)發(fā)項(xiàng)目,但是Spring Cloud離不開(kāi)Spring Boot,屬于依賴的關(guān)系。

3、Spring Boot有哪些特性

這個(gè)問(wèn)題就很容易被問(wèn)到了,Spring Boot主要有兩大特性,分別是:起步依賴和自動(dòng)裝配,接下來(lái)就仔細(xì)說(shuō)一下:

起步依賴:
每一個(gè)Spring Boot項(xiàng)目都必須繼承依賴:spring-boot-starter-parent,而點(diǎn)進(jìn)這個(gè)依賴能看到,它又繼承了spring-boot-dependencies依賴,如下圖:

而在spring-boot-dependencies的pom文件中,有大量的依賴,以及定義好的每個(gè)依賴的版本號(hào),這里的版本號(hào),是根據(jù)springboot的版本號(hào)而定義的,不同版本的springboot版本,各個(gè)依賴的版本號(hào)也不一致的:

這里即解決了我們?cè)许?xiàng)目中可能存在依賴版本沖突的問(wèn)題,它來(lái)真正管理spring boot應(yīng)用里面的所有依賴版本。

除了繼承父依賴之外,我們的項(xiàng)目還需要引入spring-boot-starter-web依賴,它幫我們導(dǎo)入了web模塊正常運(yùn)行所依賴的組件,這些依賴的版本則由父項(xiàng)目進(jìn)行管理。而這個(gè)里面也引用了tomcat的依賴,我們可以通過(guò)自動(dòng)裝配的tomcat端口啟動(dòng)項(xiàng)目。

總結(jié):
在起步依賴上,spring boot幫我們管理了各個(gè)依賴的版本,使各個(gè)依賴不會(huì)出現(xiàn)版本沖突;另外,幫我們打包了各個(gè)依賴讓我們不用再像之前那樣自己導(dǎo)入一大堆的依賴,只要引入起步依賴的坐標(biāo)就可以進(jìn)行web開(kāi)發(fā)了,同樣體現(xiàn)了依賴傳遞的用。

自動(dòng)裝配:
自動(dòng)裝配也是spring boot的一大特性,新建spring boot項(xiàng)目之后,會(huì)發(fā)現(xiàn)在啟動(dòng)類上有個(gè)@SpringBootApplication注解,而springboot也是通過(guò)該注解去自動(dòng)裝配的,點(diǎn)進(jìn)去@SpringBootApplication注解可看到如下內(nèi)容:

可以看到,@SpringBootApplication注解可以算是由三個(gè)注解組成的,@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。由這三個(gè)注解組成,@ComponentScan就很熟悉啦,就是用來(lái)配置spring容器掃描路徑的,默認(rèn)指掃描當(dāng)前啟動(dòng)類所在的包里的對(duì)象,如果你想在本服務(wù)使用其他服務(wù)的類,可以在@SpringBootApplication注解后面添加(scanBasePackages = {"其他服務(wù)包路徑:如com.aaa.bbb", "本服務(wù)包路徑"}),接下來(lái)看下@SpringBootConfiguration注解:

這里面啥都沒(méi)有,其實(shí)@SpringBootConfiguration注解就等同于@Configuration注解,而@Configuration注解也很熟悉啦,使用注解@Configuration的類,就表示這個(gè)類是SpringBoot bean的創(chuàng)建的配置文件類。啟動(dòng)類標(biāo)注了@SpringBootConfiguration之后,本身其實(shí)也是一個(gè)ioc容器的配置類。

最終要的是@EnableAutoConfiguration這個(gè)注解,這個(gè)注解是SpringBoot自動(dòng)配置功能開(kāi)啟,是自動(dòng)裝配的核心注解,點(diǎn)進(jìn)去看下:

可以看到,@EnableAutoConfiguration這個(gè)注解使用了@AutoConfigurationPackage注解,還導(dǎo)入了一個(gè)AutoConfigurationImportSelector的類,先來(lái)看下@AutoConfigurationPackage注解,這個(gè)注解其實(shí)就是導(dǎo)入了一個(gè)AutoConfigurationPackages.Registrar.class的組件,如下圖:

可以看到這個(gè)類有兩個(gè)方法,主要看第一個(gè)方法:registerBeanDefinitions,顧名思義,這個(gè)方法就是用來(lái)注冊(cè)bean,register方法會(huì)掃描主配置類所在包及其子包下的組件,并注冊(cè)到IOC容器中。這就是@AutoConfigurationPackage注解的作用。

接下來(lái)看下導(dǎo)入的AutoConfigurationImportSelector類是做什么的,我們只用關(guān)注getCandidateConfigurations()這個(gè)方法:

在方法第一行打個(gè)斷點(diǎn)看一下:

可以看到,configurations里面,就是獲取的全類名集合,那么這些配置類是在哪里掃描到的呢?看下下面的報(bào)錯(cuò)提示信息就知道了,可以看到是在META-INF/spring.factories文件內(nèi)獲取的,而這個(gè)文件,就在當(dāng)前類所在的包:

看到這里,就比較清晰了,自動(dòng)裝配就是掃描到這些配置類,然后進(jìn)行裝配的。

來(lái)看下下面這個(gè)類是怎么裝配的:

下面標(biāo)記出來(lái)的這個(gè)注解就是裝配配置文件:

點(diǎn)進(jìn)去ServerProperties類看一下:

可以看到,這個(gè)類讀取配置文件以server開(kāi)頭,比如server.port、server.address等,這些配置文件是在當(dāng)前包下的spring-configuration-metadata.json里面:

點(diǎn)進(jìn)去可以看到很多json數(shù)據(jù):

搜索一下server.port、server.address:

通過(guò)這些json數(shù)據(jù)進(jìn)行相應(yīng)裝配,比如server.port,其實(shí)就是tomcat默認(rèn)的端口號(hào),有個(gè)defaultValue,默認(rèn)值就是8080。

總結(jié):
自動(dòng)配置,第一得益于能掃描主配置類所在包及其子包的組件,將這些組件注冊(cè)到IOC容器中,第二它能借助spring框架原有的SpringFactoriesLoader的支持,加載META-INF/spring.factories獲取組件的全類名并通過(guò)反射實(shí)例化為對(duì)應(yīng)的標(biāo)注了@Configuration的JavaConfig形式,并且符合要求@Conditional要求的IOC容器配置類,然后通過(guò)一些默認(rèn)值來(lái)進(jìn)行相應(yīng)初始化配置。

4、Spring Boot配置文件的優(yōu)先級(jí)

前面說(shuō)了每個(gè)Spring Boot項(xiàng)目都要依賴于spring-boot-starter-parent,看下spring-boot-starter-parent的pom文件:

可以看到,這里就是加載配置文件的地方,配置文件可以以application開(kāi)頭,yml、yaml、properties結(jié)尾,加載順序?yàn)閥ml -> yaml -> properties,后面的配置會(huì)覆蓋前面的配置,比如本項(xiàng)目有個(gè)yml配置文件,還有個(gè)properties配置文件,兩個(gè)配置文件內(nèi)都有server.port,yml里面的值為8081,properties里面的值為8082,那么啟動(dòng)項(xiàng)目之后tomcat的端口就是8082,會(huì)覆蓋掉yml里面的配置。

結(jié)尾

如果你覺(jué)得我的文章對(duì)你有幫助話,歡迎關(guān)注我的微信公眾號(hào):"一個(gè)快樂(lè)又痛苦的程序員"(無(wú)廣告,單純分享原創(chuàng)文章、已pj的實(shí)用工具、各種Java學(xué)習(xí)資源,期待與你共同進(jìn)步)

總結(jié)

以上是生活随笔為你收集整理的springboot 获取配置文件中的值_Spring Boot面试必问(亲测)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美混交群体交 | 亚洲午夜av久久乱码 | 黑人和白人做爰 | 国产视频a | 亚洲欧美日韩国产一区二区三区 | 国产三级三级三级三级三级 | 免费又黄又爽又猛大片午夜 | 嫩草av91| 黄色麻豆视频 | 国产美女诱惑 | 欧美va视频| 亚洲精品二三区 | 日韩精品无码一区二区三区久久久 | 六月婷婷中文字幕 | 黄色网免费观看 | 毛片网站在线观看 | 成人免费网站黄 | 精品国产乱码久久久久久影片 | 精品少妇人妻一区二区黑料社区 | 欧美亚洲三级 | 久久久久久久久久久久久久国产 | 久久午夜夜伦鲁鲁片无码免费 | 欧美成人一区二区视频 | 五月婷婷激情在线 | 乖疼润滑双性初h | 精品福利影院 | 国产一级黄色片子 | а天堂中文在线官网 | 伊人看片 | 免费色av | 日日淫 | 综合久久中文字幕 | 欧美黄视频在线观看 | 熟妇女人妻丰满少妇中文字幕 | 欧美午夜网 | 国产黄色录像 | 亚洲伦乱 | 动漫玉足吸乳羞免费网站玉足 | 四虎av网站 | 国产原创中文av | 国产999精品久久久久久 | 国产成人免费观看视频 | 亚洲国产成人精品91久久久 | 欧美日韩中文国产一区发布 | 日韩91视频 | 久久爱综合网 | 中韩毛片| 国产日批视频在线观看 | 一级特黄aaa大片 | 亚洲一区二区在线视频 | 日本免费三片在线播放 | 91亚洲国产成人精品一区二区三 | 麻豆视频网站在线观看 | 日本美女黄色 | а√中文在线资源库 | 蜜美杏av | 性欧美精品男男 | 91影院在线观看 | 精品少妇人妻av一区二区 | 波多野结衣av无码 | 国产av成人一区二区三区 | 亚洲在线免费观看视频 | 国产在线精品观看 | 色综合成人 | 美女操出白浆 | 一边摸内裤一边吻胸 | 成年人在线免费看 | 深夜福利免费在线观看 | 黄色一级视频网站 | 久久精品视频一区二区三区 | 日av一区| 国产综合在线观看 | 孕期1ⅴ1高h | 97爱视频 | 中文字幕一区二区三区精彩视频 | 第五色婷婷 | www.一区二区三区四区 | 国产女人水真多18毛片18精品 | 人人澡人人射 | 国产成人在线看 | 九九热视频在线免费观看 | 日韩国产三级 | 国产人成视频在线观看 | 午夜精品久久久久久久 | 免费av电影网址 | 一二三区av| 午夜黄色剧场 | 国产福利一区二区视频 | 999国产精品视频 | 欧美日韩视频一区二区三区 | 污视频免费在线观看网站 | 少女与动物高清版在线观看 | 国产精品88av | 公侵犯人妻一区二区 | 特级毛片av | 性一交一黄一片 | 男人天堂社区 | 久久夜精 | 高潮毛片无遮挡 |