第2章 Spring Boot核心配置與注解_第1頁(yè)
第2章 Spring Boot核心配置與注解_第2頁(yè)
第2章 Spring Boot核心配置與注解_第3頁(yè)
第2章 Spring Boot核心配置與注解_第4頁(yè)
第2章 Spring Boot核心配置與注解_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章SpringBoot核心配置與注解本章內(nèi)容:1.熟悉SpringBoot自動(dòng)化配置2.掌握SpringBoot配置文件屬性值注入3.掌握SpringBoot多環(huán)境配置engineeringSoftware2.1自動(dòng)化配置

常規(guī)的配置讓開(kāi)發(fā)人員將更多的經(jīng)歷耗費(fèi)在了配置文件上。而這些配置都是一些固定模式的配置方式,甚至很多都是模板代碼,那既然是這樣一種情況,有沒(méi)有一種可能性,讓Spring自動(dòng)完成這些模板配置工作呢?答案是肯定的,這就是SpringBoot自動(dòng)化配置產(chǎn)生的初衷。將開(kāi)發(fā)人員從繁重的配置工作中解放出來(lái),而這些繁瑣的配置細(xì)節(jié)交由SpringBoot去完成,如果我們需要提供自己的配置參數(shù),只需要覆蓋自動(dòng)配置的參數(shù)即可。engineeringSoftware在項(xiàng)目的啟動(dòng)類(lèi)上需要添加注解@SpringBootApplication,這是SpringBoot的核心注解,目的是開(kāi)啟自動(dòng)化配置,它其實(shí)是一個(gè)組合注解。2.1.1@SpringBootApplication

engineeringSoftware雖然定義使用了多個(gè)Annotation進(jìn)行了原信息標(biāo)注,但實(shí)際上重要的只有三個(gè)Annotation:@Configuration(@SpringBootConfiguration點(diǎn)開(kāi)查看發(fā)現(xiàn)里面還是應(yīng)用了@Configuration)@EnableAutoConfiguration@ComponentScan2.1.1@SpringBootApplication

engineeringSoftware每個(gè)SpringBoot項(xiàng)目都有一個(gè)主程序啟動(dòng)類(lèi),在主程序啟動(dòng)類(lèi)中有一個(gè)啟動(dòng)項(xiàng)目的main()方法,在該方法中通過(guò)執(zhí)行SpringApplication.run()即可啟動(dòng)整個(gè)SpringBoot程序。那么SpringApplication.run()方法到底是如何做到啟動(dòng)SpringBoot項(xiàng)目的呢?1.SpringApplication初始化階段2.SpringApplication運(yùn)行階段2.1.2SpringApplication

engineeringSoftwareSpringBoot中免除了大部分手動(dòng)配置,但是對(duì)于一些特殊的情況,還是需要我們進(jìn)行手動(dòng)配置的。SpringBoot項(xiàng)目提供了一個(gè)全局配置文件perties或者application.yml,對(duì)一些默認(rèn)的配置值進(jìn)行修改,存放在src/main/resources目錄下或者類(lèi)路徑下的/config下。perties配置文件比較簡(jiǎn)單,形式如下key=value有時(shí)候我們需要重新制定端口,使用“server.port”就可以制定內(nèi)置Tomcat容器的端口:server.port=80882.2全局配置

engineeringSoftwareYAML文件格式是SpringBoot支持的一種JSON超集文件格式,相較于傳統(tǒng)的Properties配置文件,YAML文件以數(shù)據(jù)為核心,是一種更為直觀且容易被計(jì)算機(jī)識(shí)別的數(shù)據(jù)序列化格式。application.yml配罝文件的工作原理和perties是一樣的,只不過(guò)YAML格式配罝文件看起來(lái)更簡(jiǎn)潔一些。YAML文件的擴(kuò)展名可以使用.yml或者.yaml。application.yml文件使用“key:(空格)value”格式配置屬性,以空格的縮進(jìn)來(lái)控制層級(jí)關(guān)系;只要是左對(duì)齊的一列數(shù)據(jù),都是同一個(gè)層級(jí)的。2.2全局配置

engineeringSoftwareserver:port:8888path:/pathname:first:tiansecond:song2.2全局配置

engineeringSoftwareYAML支持的數(shù)據(jù)結(jié)構(gòu)有三種。1.字面量:?jiǎn)蝹€(gè)的、不可再分的值2.對(duì)象:鍵值對(duì)的集合,又稱(chēng)為映射(mapping)/哈希(hashes)/字典(dictionary)3.數(shù)組:一組按次序排列的值,又稱(chēng)為序列(sequence)/列表(list)

SpringBoot為我們提供了application.properties配置文件,讓我們可以進(jìn)行自定義配置,來(lái)對(duì)默認(rèn)的配置進(jìn)行修改,以適應(yīng)具體的生產(chǎn)情況。當(dāng)然,還包括一些第三方的配置,接下來(lái)我們介紹如何讀取第三方的配置信息。2.3自定義配置

engineeringSoftware@Value注解用于讀取Java代碼中的環(huán)境或應(yīng)用程序的屬性值,通常用來(lái)配置單個(gè)環(huán)境變量。其讀取屬性值的語(yǔ)法如下所示。@Value("${property_key_name}")接下來(lái)通過(guò)一個(gè)案例演示一個(gè)@Value注解的使用方法。2.3.1注入自定義屬性到字段中

engineeringSoftware在SpringBoot中,當(dāng)需要獲取到配置文件數(shù)據(jù)時(shí),除了可以用Spring自帶的@Value注解外,SpringBoot提供了一種更加方便的方式:@ConfigurationProperties。只要在bean上添加上這個(gè)注解,指定好配置文件的前綴,那么對(duì)應(yīng)的配置文件數(shù)據(jù)就會(huì)自動(dòng)填充到bean中。接下來(lái)通過(guò)一個(gè)案例演示一個(gè)@ConfigurationProperties注解的使用方法。2.3.2注入自定義屬性到對(duì)象中

engineeringSoftware所有的配置都可以寫(xiě)到application.properties文件中,這個(gè)文件會(huì)被SpringBoot自動(dòng)加載,免去了我們手動(dòng)加載的煩惱。但實(shí)際上,很多時(shí)候我們會(huì)自定義配置文件,這些文件就需要進(jìn)行手動(dòng)加載,SpringBoot是不會(huì)自動(dòng)識(shí)別這些文件的。這時(shí)可以使用@PropertySource注解找到項(xiàng)目的其他配置文件,然后結(jié)合上面兩小節(jié)中任意一種方法讀取即可。

接下來(lái)通過(guò)一個(gè)案例演示一個(gè)@PropertySource注解的使用方法。2.3.3注入自定義配置文件

engineeringSoftware在SpringBoot框架中,推薦使用配置類(lèi)的方式向容器中添加和配置組件。在SpringBoot框架中,通常使用@Configuration注解定義一個(gè)配置類(lèi),SpringBoot會(huì)自動(dòng)掃描和識(shí)別配置類(lèi),從而替換傳統(tǒng)Spring框架中的XML配置文件。當(dāng)定義一個(gè)配置類(lèi)后,還需要在類(lèi)中的方法上使用@Bean注解進(jìn)行組件配置,將方法的返回對(duì)象注入到Spring容器中,并且組件名稱(chēng)默認(rèn)使用的是方法名,當(dāng)然也可以使用@Bean注解的name或value屬性自定義組件的名稱(chēng)。

接下來(lái)通過(guò)一個(gè)案例演示一個(gè)@Configuration編寫(xiě)自定義配置類(lèi)的用法。2.3.4自動(dòng)掃描配置類(lèi)

engineeringSoftware我們?cè)陂_(kāi)發(fā)SpringBoot應(yīng)用時(shí),通常同一套程序會(huì)被應(yīng)用和安裝到幾個(gè)不同的環(huán)境,比如:開(kāi)發(fā)、測(cè)試、生產(chǎn)等。其中每個(gè)環(huán)境的數(shù)據(jù)庫(kù)地址、服務(wù)器端口等等配置都會(huì)不同,如果在為不同環(huán)境打包時(shí)都要頻繁修改配置文件的話(huà),那必將是個(gè)非常繁瑣且容易發(fā)生錯(cuò)誤的事。2.4多環(huán)境配置

engineeringSoftwareSpringBoot給我們提供了非常好的支持,那就是多環(huán)境配置。我們可以將多種環(huán)境的參數(shù)一起配置到項(xiàng)目中,只需要執(zhí)行不同的運(yùn)行命名,就可以達(dá)到切換環(huán)境的目的。在SpringBoot中多環(huán)境配置文件名必須滿(mǎn)足:application-{profile}.properties或者application-{profile}.yaml的固定格式,其中{profile}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí)。其中,application.yaml是啟動(dòng)服務(wù)時(shí),服務(wù)器會(huì)自動(dòng)加載的配置文件,而application-dev.yaml代表的是開(kāi)發(fā)環(huán)境的配置文件,application-test.yaml代表的是測(cè)試環(huán)境的配置文件,后兩個(gè)文件在啟動(dòng)服務(wù)時(shí),服務(wù)器不會(huì)自動(dòng)加載,接下來(lái)通過(guò)一個(gè)案例演示多環(huán)境配置文件的用法。2.4.1使用Profile進(jìn)行多環(huán)境配置

engineeringSoftware除了使用Profile文件進(jìn)行多環(huán)境配置外,還可以使用@Profile注解進(jìn)行多環(huán)境配置。@Profile注解在不同的場(chǎng)景下,給出不同的類(lèi)實(shí)例。比如在生產(chǎn)環(huán)境中給出的DataSource實(shí)例和測(cè)試環(huán)境給出的DataSource實(shí)例是不同的。@Profil

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論