目錄
配置文件格式
properties配置文件說明
1.properties基本語法
2.讀取配置文件
3.properties缺點(diǎn)
yml配置文件說明
1.yml基本語法
2.配置不同數(shù)據(jù)類型
3.字符串特殊情況
4.配置對象
properties和yml對比
日志
日志的使用
日志級別
日志持久化
Lombok
Lombok原理解釋
Spring中配置文件有很重要的地位,所有的總要數(shù)據(jù)都是在配置文件中配置的。
比如數(shù)據(jù)庫的信息、項(xiàng)目使用的端口號、日志等等。
配置文件格式
Spring Boot配置文件主要分為以下兩種格式:
.properties 和 .yml
- 當(dāng)properties和yml一起存在一個(gè)項(xiàng)目中,并且出現(xiàn)了同樣的配置,比如serve人.port這個(gè)配置,這個(gè)時(shí)候會(huì)以properties中的配置為主,也就是優(yōu)先級高于.yml。但加載完properties后仍然會(huì)加載yml文件。
- 實(shí)際來說,并不會(huì)出現(xiàn)兩種配置文件共存的情況,只出現(xiàn)一種配置文件有利于維護(hù)。
properties配置文件說明
properties是古老的配置文件,也是創(chuàng)建Spring Boot 項(xiàng)目默認(rèn)的配置文件。
1.properties基本語法
properties是以鍵值對的形式來配置的,key和value之間以 = 連接。并且可以使用#來添加注釋。
2.讀取配置文件
在項(xiàng)目中想要主動(dòng)讀取配置文件的內(nèi)容,可以使用@Value注釋來實(shí)現(xiàn)。
使用? ${}? 的格式讀取,并且在Construct后面打印出來
3.properties缺點(diǎn)
properties是以key-value的形式配置的。
但是這樣就會(huì)出現(xiàn)很多的冗余信息
這個(gè)時(shí)候我們就可以使用yml的配置文件了。
yml配置文件說明
yml是YAML的 縮寫,全稱是 Yet Another Markup Language 翻譯成中文就是“另?種標(biāo)記語言”。
1.yml基本語法
yml是樹形結(jié)構(gòu)的配置文件,它的基礎(chǔ)語法是? key: value。注意key和value之間使用英文冒號加空格的方式組成的,其中的空格不能省略。
2.配置不同數(shù)據(jù)類型
yml配置讀取的方式和properties相同,使用@Value注解即可。
3.字符串特殊情況
字符串默認(rèn)不用加引號,但是加英文的單引號和雙引號可以表示特殊的含義。
雙引號不會(huì)轉(zhuǎn)義字符串里面的特殊字符,特殊字符會(huì)作為本身想要表達(dá)的意思。
4.配置對象
我們還可以在yml中配置對象:
或者使用行內(nèi)寫法:????????
這個(gè)時(shí)候就不能使用@Value來讀取配置中的對象了,而是要使用ConfigurationProperties來讀取:
要注意,從配置文件中獲取到student對象,需要在相關(guān)的類中定義Getter和Setter方法。
properties和yml對比
- properties以key=value的方式配置,而yml使用類似于json格式的樹形配置方法配置的。
- yml可以很好的解決數(shù)據(jù)冗余的問題
- yml通用型非常好,并且支持更多的數(shù)據(jù)類型
日志
在Spring Boot中,我們需要日志。
- 記錄錯(cuò)誤日志和警告日志:比如排查錯(cuò)誤、bug
- 用戶日志:可以記錄用戶登錄日志,方便分析用戶是正常登錄還是惡意訪問的用戶
- 系統(tǒng)日志:記錄系統(tǒng)的操作日志,方便數(shù)據(jù)的恢復(fù)和定位操作人員
- 程序執(zhí)行日志:記錄程序的執(zhí)行時(shí)間
日志的使用
Spring Boot項(xiàng)目在啟動(dòng)的時(shí)候就默認(rèn)有日志輸出:
在程序中獲取日志對象需要使用日志工廠LoggerFactory:
可以看到我們打印了五個(gè)日志,但是只顯示出來了三個(gè)。這就要提到日志級別了。
日志級別
日志級別可以幫助我們實(shí)現(xiàn)不同環(huán)境下的日志打印需求,如開發(fā)環(huán)境我們就需要很詳細(xì)的信息,而生產(chǎn)環(huán)境為了保證性能和安全就需要輸入盡量少的日志。
- trace:微量,少許的意思,級別最低;
- debug:需要調(diào)試時(shí)候的關(guān)鍵信息打印;
- info:普通的打印信息(默認(rèn)日志級別);
- warn:警告,不影響使用,但需要注意的問題;
- error:錯(cuò)誤信息,級別較高的錯(cuò)誤日志信息;
- fatal:致命的,因?yàn)榇a異常導(dǎo)致程序退出執(zhí)行的事件。
Spring Boot默認(rèn)的級別是info,日志級別比info高的才顯示出來。越往上關(guān)于日志的消息就收到的越多。
并且我們可以設(shè)置日志級別,以yml配置文件為例:
此時(shí)全局的日志只有error級別的才會(huì)顯示,所以之前的日志都沒顯示。自定義在TestController的日志更改為了trace級別,也就是只要比trace級別高的日志就會(huì)顯示出來。
并且也可以用info來自定義日志內(nèi)容。
日志持久化
以上的內(nèi)容都是輸出在控制臺(tái)上,生產(chǎn)環(huán)境上我們需要將日志保存到本地或者數(shù)據(jù)庫中。
想要將日志持久化保存,只需要在配置文件中指定日志的存儲(chǔ)目錄或者指定保存名稱后,日志就會(huì)自動(dòng)保存。也就是說不配置就不會(huì)保存,配置好了就默認(rèn)保存。
Lombok
之前我們已經(jīng)簡單的介紹了Lombok,這次我們詳細(xì)的說明一下。
首先是對日志的快捷添加,使用 @Slf4j 注釋來快速添加日志工廠的元素。
使用這一個(gè)注解就可以代替之前的LoggerFactory.getLogger這樣繁瑣的操作了。
但是使用注解時(shí),只能使用log對象才能輸出,這是lombok提供的對象名。
Lombok原理解釋
之前介紹過JVM,里面詳細(xì)解釋到:用戶代碼(.java)通過編譯成字節(jié)碼(.class)再通過JVM運(yùn)行,Lombok直接介入到編碼的過程,生成的字節(jié)碼文件是被修改過的。
也就是說,拿到了Lombok修改過的.class文件,和用戶自己添加的未經(jīng)過簡化的代碼編譯后是一致的。
基本注解:
- @Getter 自動(dòng)添加 getter 方法
- @Setter 自動(dòng)添加 setter 方法
- @ToString 自動(dòng)添加 toString 方法
- @EqualsAndHashCode 自動(dòng)添加 equals 和 hashCode 方法
- @NoArgsConstructor 自動(dòng)添加無參構(gòu)造方法
- @AllArgsConstructor 自動(dòng)添加全屬性構(gòu)造方法,順序按照屬性的定義順序
- @NonNull 屬性不能為 null
- @RequiredArgsConstructor 自動(dòng)添加必需屬性的構(gòu)造方法,final + @NonNull 的 屬性為必需
組合注解:文章來源:http://www.zghlxwxcb.cn/news/detail-804095.html
- @Data? 作用為@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor + @NoArgsConstructor
日志注解:文章來源地址http://www.zghlxwxcb.cn/news/detail-804095.html
- @Slf4j? 添加一個(gè)名為log的日志
到了這里,關(guān)于Spring Boot 配置文件和日志的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!