✨Spring Boot配置
- 🏖️1.全局配置檔案
- 🌈1.1全局配置檔案概述
- 🌈1.2配置檔案的位置和加載順序
- 🏖️2.多環境配置
- 🌈 2.1多環境配置檔案
- 🌈2.2激活某個環境配置
- 🏖️3.yaml
- 🌈3.1yaml概述
- 🌈3.2基本文法
- 🌈3.3值的寫法
- ❄️3.3.1字面量
- ❄️3.3.2 日期類型
- ❄️3.3.3對象
- ❄️3.3.4 數組、List、Set
- 🏖️4.利用配置檔案來給屬性指派
- 🌈4.1@Value,通過${}直接獲得配置檔案的配置值注入
- 🌈4.2@ConfigurationProperties
- 🌈4.3@EnableConfigurationProperties
- 🌈4.4@PropertySource
- 🏖️5.自定義配置類
- 🌈5.1@Configuration
- 🌈5.2@Bean
- 🌈5.3代碼示範
- 🌈5.4檢視啟動類的注解
📃個人首頁:
不斷前進的皮卡丘
🌞部落格描述:
夢想也許遙不可及,但重要的是追夢的過程,用部落格記錄自己的成長,記錄自己一步一步向上攀登的印記
🏖️1.全局配置檔案
🌈1.1全局配置檔案概述
Spring Boot使用一個全局的配置檔案,通過配置檔案,可以修改Spring Boot自動配置的預設值,配置檔案名是固定的,檔案名必須是 配置檔案格式
application
或者
properties
,比如
yml
或者
application.properties
application.yml
比如,我們可以通過修改application.properties來自定義伺服器的端口号我們來建立一個項目
🌈1.2配置檔案的位置和加載順序
- /config/:目前項目根目錄下的config目錄下
- /:目前項目的根目錄下
- /resources/config/:resources目錄下的config目錄下
- /resources/:resources目錄下
加載的優先級是從上到下,由高到低
🏖️2.多環境配置
開發過程中,至少需要三個環境(開發環境dev-測試環境test-生産環境pro),但是每一個環境的配置都不一樣,比如資料庫等各種配置,Spring Boot提供多環境配置的機制,讓開發者靈活根據需求而切換不同的配置環境
比如:我們可以通過在不同環境下面,伺服器端口号不同進行測試
🌈 2.1多環境配置檔案
在Spring Boot中多環境配置檔案名必須滿足:
application-{profile}.properties
的固定格式。
其中,{profile}對應的是我們的環境辨別,比如:
application-dev.properties:開發環境
application-test.properties:測試環境
application-prod.properties:生産環境
🌈2.2激活某個環境配置
在application.properties檔案中添加配置,
spring.profiles.active={profile}
來激活
比如:
spring-profiles.active=test 表示開啟測試環境
🏖️3.yaml
🌈3.1yaml概述
yaml(YAML A/isn’t Markup Language),字尾名是
.yaml
或者
.yml
。有兩層含義
- YAML是一個标記語言
- YAML不是一個标記語言
yaml是以
資料為中心
,比如json\xml等更适合作為配置檔案
使用
#
添加注釋
# 伺服器端口
server:
port: 8080
當我們建立一個Spring Boot項目的時候,它預設是給的配置檔案是的形式,我們也可以把它修改成
.properties
的形式
yaml
🌈3.2基本文法
- k:(空格)v,表示一對鍵值對,
空格一定要有
- 用縮進來控制層級關系,隻要是左對齊的一列資料,都是同一個層級的
- 屬性和值是區分大小寫的
- 縮進的空格數不重要,但同級元素必須左側對齊。
例如:
spring:
profiles: dev
datasource:
url: jdbc:mysql://127.0.01/banchengbang_springboot
username: root
password: root
driver-class-name:
🌈3.3值的寫法
YAML 支援以下三種資料結構:
- 對象:鍵值對的集合
- 數組:一組按次序排列的值
- 字面量:單個的、不可拆分的值
❄️3.3.1字面量
- 字面量:普通的值(數字,字元串,布爾)
- 字元串預設不需要加上單引号或者雙引号
- 字元串如果加上雙引号,那麼轉義字元有效
- 字元串如果加上單引号,那麼轉義字元隻是一個普通的字元串資料
-
字面量是指單個的,不可拆分的值,例如:數字、字元串、布爾值、以及日期等
name: "zhangsan \n lisi"
# 輸出的結果是
name: 'zhangsan \n lisi'
# 輸出的結果是
❄️3.3.2 日期類型
- 日期類型
- 日期格式必須是 :“yyyy/MM/dd”
birth:
- 對象(屬性和值)、Map(鍵值對)
❄️3.3.3對象
對象寫法方式一:換行縮進
person:
lastName: zhangsan
age: 20
book:
price: 222
對象寫法方式二:行内寫法
book: {name: java,price: 2000}
❄️3.3.4 數組、List、Set
縮進的寫法:用-表示數組中的一個元素
pets:
- cat
- dog
-
行内寫法,外部使用[]表示
pets: [cat,dog,pig]
🏖️4.利用配置檔案來給屬性指派
🌈4.1@Value,通過${}直接獲得配置檔案的配置值注入
測試
🌈4.2@ConfigurationProperties
可以讓屬性和配置檔案中的配置自動綁定,需要指明一個prefix(字首)
先把檔案編碼方式改成UTF-8 還是以剛剛的Book類為例子,我們可以先在pom.xml檔案中添加依賴 加入這個依賴的作用其實是為了便于我們寫代碼,我們在配置檔案中可以看到提示 測試一下
🌈4.3@EnableConfigurationProperties
- 方法一:通過@Component注解可以把指定類注入到Spring容器中
- 方法二:在Spring Boot啟動類上,添加@EnableConfigurationProperties,把指定的類注入到Spring容器中,推薦這個方法,便于統一管理
- 我們點進這個注解去看看(大家對源碼感興趣的可以自己去深入了解)
🌈4.4@PropertySource
可以指定加載一個獨立的配置檔案資訊
用法:
- 加載指定的屬性檔案(*.properties)到 Spring 的 Environment 中。可以配合 @Value 和@ConfigurationProperties 使用。
-
@PropertySource 和 @Value
組合使用,可以将自定義屬性檔案中的屬性變量值注入到目前類的使用@Value注解的成員變量中。
-
@PropertySource 和 @ConfigurationProperties
組合使用,可以将屬性檔案與一個Java類綁定,将屬性檔案中的變量值注入到該Java類的成員變量中。
比如說,我們本來是在全局配置檔案中指定那些屬性的資訊,但是可能有很多需要配置,這個時候,我們可以把這些抽取出來,成為一個個小的配置檔案,但是要注意的是,這個時候,這些配置檔案隻能是properties形式的,不能是yaml形式的 有一個地方需要注意,這裡的話,我們得使用@Component注解,如果使用@EnableConfigurationProperties進行注入的話,其實我們在測試的時候,會發現屬性是null
🏖️5.自定義配置類
從Spring3.0,@Configuration用于定義配置類,可以替換xml配置檔案,被注解的類内部包含有一個或多個被@Bean注解的方法,這些方法的傳回值會被建立執行個體,托管給Spring容器
🌈5.1@Configuration
@Configuration标注在類上面,相當于把這個類作為Spring的xml配置檔案中的
<bean>
,作用是配置spring容器(應用上下文)
@Configuration注解的配置類有下面的幾個要求:
1️⃣不可以是final類型
2️⃣不可以是匿名類
3️⃣嵌套的configuration必須是靜态類
🌈5.2@Bean
@Bean标注在方法上(傳回某個執行個體的方法),等價于spring的xml配置檔案中的<bean>,作用是注冊bean對象
🌈5.3代碼示範
我們先寫一個實體類Stu 然後寫一個自定義的配置類 測試
🌈5.4檢視啟動類的注解
點進去@SpringBootApplication注解