摘要:前言如題,今天解析下的配置文件。這時我們就可以用的屬性來配置隨機(jī)數(shù),比如隨機(jī)字符串隨機(jī)隨機(jī)以內(nèi)的隨機(jī)數(shù)的隨機(jī)數(shù)使用多配置文件很多時候我們開發(fā)項目都需要很多套環(huán)境,比如有測試環(huán)境,開發(fā)環(huán)境以及生產(chǎn)環(huán)境。原因是,是以的編碼方式讀取配置文件。
微信公眾號:一個優(yōu)秀的廢人前言
如有問題或建議,請后臺留言,我會盡力解決你的問題。
如題,今天解析下 SpringBoot 的配置文件。
自定義屬性加載首先構(gòu)建 SpringBoot 項目,不會的看這篇舊文 使用 IDEA 構(gòu)建 Spring Boot 工程。
首先在項目根目錄下加入以下自定義屬性:
# 防止讀取亂碼 spring.http.encoding.charset=UTF-8 # 項目啟動端口 server.port=9999 # 自定義配置 com.nasus.author.name=一個優(yōu)秀的廢人 com.nasus.article.title=SpringBoot配置文件詳解
使用 @value 注解讀取配置文件屬性:
package com.nasus.bean; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; /** * Project Name:springboot_properties_demo
* Package Name:com.nasus.properties
* Date:2019/1/28 20:59
* Description: TODO: 描述該類的作用
* @author nasus
*/ @Data @Component public class PropertiesBean { @Value("${com.nasus.author.name}") private String name; @Value("${com.nasus.article.title}") private String title; @Value("${com.nasus.doing}") private String desc; }
之后新建 controller 測試自定義屬性加載,代碼如下:
package com.nasus.controller; import com.nasus.bean.PropertiesBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Project Name:springboot_properties_demo
* Package Name:com.nasus.controller
* Date:2019/1/28 21:41
* Description: TODO: 測試自定義屬性加載
* * @author nasus
*/ @RestController @RequestMapping("/test") public class TestController { @Autowired private PropertiesBean propertiesBean; @GetMapping("/getInfo") public PropertiesBean getInfo(){ return propertiesBean; } }
訪問 http://localhost:8080/test/getInfo 查看加載結(jié)果:
可以看到,加入 @value 注解之后,配置文件的屬性都被讀取出來了。以前,或許我們還需要專門寫一個讀取配置文件的工具類才能把屬性讀取出來,現(xiàn)在有了 Spring ,我們可以直接使用 @value 就能讀取了,簡直不能太方便。本例源碼在這:github 地址
參數(shù)間的引用配置文件代碼如下:
# 防止讀取亂碼 spring.http.encoding.charset=UTF-8 # 項目啟動端口 server.port=9999 # 自定義配置 com.nasus.author.name=一個優(yōu)秀的廢人 com.nasus.article.title=SpringBoot配置文件詳解 com.nasus.doing=${com.nasus.author.name}寫文章《${com.nasus.article.title}》
可以看到最后一個參數(shù)配置使用了前兩個的參數(shù)配置,測試結(jié)果如下:
有時項目需求,可能我們需要配置一些隨機(jī)數(shù),比如說為了安全而隨機(jī)配置的服務(wù)器端口,以及登錄密鑰。這時我們就可以用 SpringBoot 的 random 屬性來配置隨機(jī)數(shù),比如:
# 隨機(jī)字符串 com.nasus.article.value=${random.value} # 隨機(jī)int com.nasus.article.number=${random.int} # 隨機(jī)long com.nasus.article.bignumber=${random.long} # 10以內(nèi)的隨機(jī)數(shù) com.nasus.article.test1=${random.int(10)} # 10-20的隨機(jī)數(shù) com.nasus.article.test2=${random.int[10,20]}使用多配置文件
很多時候我們開發(fā)項目都需要很多套環(huán)境,比如有測試環(huán)境,開發(fā)環(huán)境以及生產(chǎn)環(huán)境。不同的環(huán)境就需要使用不同的配置文件,為此我們可以根據(jù)這 3 個環(huán)境分別新建 以下 3 個配置文件。
application-dev.properties:開發(fā)環(huán)境
application-test.properties:測試環(huán)境
application-prod.properties:生產(chǎn)環(huán)境
項目中默認(rèn)的配置文件是 application.properties 。這時我們可以根據(jù)自己的環(huán)境去使用相應(yīng)的配置文件,比如說,項目各個環(huán)境的端口必須不一樣。那我們可以這樣配置:
application-dev.properties:開發(fā)環(huán)境
server.port=6666
application-test.properties:測試環(huán)境
server.port=7777
application-prod.properties:生產(chǎn)環(huán)境
server.port=8888
假如,現(xiàn)在我打包上線,那就必須用生產(chǎn)環(huán)境的配置文件了,這時我們可以在 默認(rèn)的配置文件 application.properties 中加入以下配置即可
spring.profiles.active=prod配置數(shù)據(jù)庫
SpringBoot 的配置文件有兩種格式,一種是 .properties 格式(以上栗子都是用的這種)還有一種用的是 .yaml 格式。以下是用 yaml 方式配置。這兩種格式并無好壞之分,純看個人使用習(xí)慣。我就比較喜歡 yaml 格式,因為看起來比較簡潔。
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=true username: 你的數(shù)據(jù)庫名稱 password: 你的數(shù)據(jù)庫密碼 jpa: hibernate: ddl-auto: update #ddl-auto:設(shè)為update 表示每次都重新建表 show-sql: true注意事項
使用 yaml 格式需要注意一點就是 鍵值對冒號后面,必須空一格。
application.properties 配置中文值的時候,讀取出來的屬性值會出現(xiàn)亂碼問題。但是 application.yml 不會出現(xiàn)亂碼問題。原因是,Spring Boot 是以 iso-8859 的編碼方式讀取 application.properties 配置文件。
解決第二點,只需加入 spring.http.encoding.charset=UTF-8 配置即可。
后語以上就是我對 SpringBoot 配置文件的理解與使用,當(dāng)然以上只是介紹了一下 SpringBoot 配置文件的幾個用法,它的用法還有非常多,想要深入使用還是需要各位多多深入實踐。最后,對 Python 、Java 感興趣請長按二維碼關(guān)注一波,我會努力帶給你們價值,如果覺得本文對你哪怕有一丁點幫助,請幫忙點好看,讓更多人知道。
另外,關(guān)注之后在發(fā)送 1024 可領(lǐng)取免費(fèi)學(xué)習(xí)資料。資料內(nèi)容詳情請看這篇舊文:Python、C++、Java、Linux、Go、前端、算法資料分享
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73233.html
摘要:代碼如下可以看到中一共有個依賴,其中只有是我手動加入的,用于單元測試。點擊項目啟動按鈕,效果如下好的程序必須配備完善的單元測試。測試結(jié)果如下可以看到紅圈框住的地方,出現(xiàn)這個綠色標(biāo)志證明單元測試沒問題。 微信公眾號:一個優(yōu)秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 哎呦喂,按照以往的慣例今天周六我的安排應(yīng)該是待在家學(xué)學(xué)貓叫啥的。但是今年這種日子就可能一去不復(fù)返了,沒...
摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現(xiàn)在也是一直保持著更新狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...
閱讀 2857·2021-09-10 10:51
閱讀 2222·2021-09-02 15:21
閱讀 3214·2019-08-30 15:44
閱讀 882·2019-08-29 18:34
閱讀 1662·2019-08-29 13:15
閱讀 3331·2019-08-26 11:37
閱讀 2706·2019-08-26 10:46
閱讀 1118·2019-08-26 10:26