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

下載本文檔

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

文檔簡介

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

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

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

engineeringSoftware每個(gè)SpringBoot項(xiàng)目都有一個(gè)主程序啟動(dòng)類,在主程序啟動(dòng)類中有一個(gè)啟動(dòng)項(xiàng)目的main()方法,在該方法中通過執(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)配置,但是對于一些特殊的情況,還是需要我們進(jìn)行手動(dòng)配置的。SpringBoot項(xiàng)目提供了一個(gè)全局配置文件perties或者application.yml,對一些默認(rèn)的配置值進(jìn)行修改,存放在src/main/resources目錄下或者類路徑下的/config下。perties配置文件比較簡單,形式如下key=value有時(shí)候我們需要重新制定端口,使用“server.port”就可以制定內(nèi)置Tomcat容器的端口:server.port=80882.2全局配置

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論