springboot2.x入門實戰案例學習(自動配置、自定義banner、配置類、屬性注入):第二篇

1 總體介紹

本次主要實踐的內容是springboot配置相關的知識,簡要介紹springboot中一些常用的配置信息,包括自定義banner、自動配置註解@Configuration、屬性注入註解@ConfigurationProperties、yaml配置文件、多環境profile配置方式

2 實踐步驟

首先創建一個module,名稱爲config:

這裏選擇使用spirng initializer創建spirngboot項目:

在這裏插入圖片描述

指定GA座標,其餘默認即可:
在這裏插入圖片描述

此處選擇版本爲2.1.7,勾選Spring Web Starter,此starter提供了web功能,包括內置的tomcat容器:

在這裏插入圖片描述

確認信息,點擊finish:

在這裏插入圖片描述

創建好之後需要注意右下角,選擇紅框的選項,此選項可以顯示一個dashboard,使得運行多個spirngboot項目更加方便:

在這裏插入圖片描述

創建好之後項目結構應該是下面這樣的,最底下那個就是剛纔選擇紅框選項出現的dashbroad,它會列出所有該項目下springboot的入口類,方便啓動:
在這裏插入圖片描述

springboot默認提供了一個parent starter,其中定義了許多默認配置,包括版本號、自動配置等信息,你也可以選擇自定義自己的parent starter:

在這裏插入圖片描述

入口類即包含main方法的類上被標記了@SpringBootApplication註解,這是spirngboot中的核心註解,springboot的一切都是從這裏開始的,其中該註解是一個組合註解,它是由左邊紅框內的三個註解組成的:

在這裏插入圖片描述

第一個註解其實代表的就是@Configuration,即springboot中配置類,springboot使用標有該註解的類代替了xml文件,第二個註解表示開啓自動配置功能,第三個註解是組件掃描註解:

在這裏插入圖片描述

爲了展示spirngboot中的配置,首先創建一個普通的java類,idea默認會將.前面的當成包創建出來:

在這裏插入圖片描述

接着創建一個名稱爲Dog的普通類:

在這裏插入圖片描述

在創建好的BeansConf類上標註@Configuration,表明該類是一個配置類,接着創建一個帶有@Bean標識的dog方法,@Bean註解表示該對象是需要給spring容器管理的bean對象,名稱默認爲方法名,也可以在@Bean註解中指定,springboot在初始化時會默認掃描所有配置類中的@Bean註解:

在這裏插入圖片描述

接着啓動springboot,即運行main方法,控制檯會輸出如下信息,此圖標即稱爲banner:

在這裏插入圖片描述

springboot提供了自定義banner的功能,其中banner可以是txt、jpg、gif三種格式,可以在配置文件中指定它的位置、名稱等屬性,此處使用最簡單的方式修改banner,首先在類路徑下創建banner.txt文件,該文件內編寫任何你希望輸出的內容:

在這裏插入圖片描述

在此啓動springboot後會發現banner已經被修改了:

在這裏插入圖片描述

springboot支持properties和yaml兩種方式的配置文件,同時它提供了非常多的屬性可供設置:

在這裏插入圖片描述

springboot提供的web starter中默認使用的是tomcat作爲內置的服務器,你也可以使用你想使用的其他服務器,首先你需要排除默認的tomcat,然後添加你喜歡的服務器的依賴,如下是將tomcat替換爲了jetty:

在這裏插入圖片描述

重新啓動後如果出現紅框內以Jetty開頭的信息時表示替換成功:

在這裏插入圖片描述

此處使用yaml文件將服務端口改爲8083,啓動後可以看到端口已經被改變:

在這裏插入圖片描述

爲了測試@ConfigurationProperties的功能,首先在Dog文件彙總添加name和age屬性,並生成相應的get和set方法:

在這裏插入圖片描述

在yaml文件中配置如下信息:

在這裏插入圖片描述

紅框中的值代表了yaml文件中開頭的dog,這樣就會把yaml文件中dog下的name和age的值注入到Dog類中的屬性上了:

在這裏插入圖片描述

編寫一個Controller,並給它注入Dog對象,編寫一個方法返回dog信息:
在這裏插入圖片描述

在dashboard中啓動springboot:

在這裏插入圖片描述

在瀏覽器中訪問controller中方法的路徑,可以發現該對象已經被賦值了,該值來源於yaml文件,@ConfigurationProperties註解將yaml中定義的值注入到了Dog對象中:

在這裏插入圖片描述

接下來實驗多環境下的profile,它的寫格式如下,其中紅框內的內容區分多部分的profile,不可省略,profiles定義了該部分的名稱,後面跟的是該部分中使用的配置,通過active選擇激活哪個部分的profile:

在這裏插入圖片描述

上圖中選擇激活dev下的profile,則端口變成了dev中配置的8084,如果active改爲prod,則端口會變爲8085:

在這裏插入圖片描述

3 總結

選擇激活dev下的profile,則端口變成了dev中配置的8084,如果active改爲prod,則端口會變爲8085:

[外鏈圖片轉存中…(img-kuDgIW16-1567675332371)]

3 總結

springboot和spring最大的區別就是提供了自動配置,極大的簡化了spring相關的配置,上面介紹的功能只是一些常用的,springboot中自帶的配置比這些多很多,只有掌握了這些配置才能更好的使用springboot

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章