微信公衆號:一個優秀的廢人 若有問題或建議,請後臺留言,我會盡力解決你的問題。前端
如題,今天解析下 SpringBoot 的配置文件。mysql
首先構建 SpringBoot 項目,不會的看這篇舊文 使用 IDEA 構建 Spring Boot 工程。git
首先在項目根目錄 src >> resource >> application.properties 文件下加入如下自定義屬性:github
# 防止讀取亂碼
spring.http.encoding.charset=UTF-8
# 項目啓動端口
server.port=9999
# 自定義配置
com.nasus.author.name=一個優秀的廢人
com.nasus.article.title=SpringBoot配置文件詳解
複製代碼
使用 @value 註解讀取配置文件屬性:web
package com.nasus.bean; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; /** * Project Name:springboot_properties_demo <br/> * Package Name:com.nasus.properties <br/> * Date:2019/1/28 20:59 <br/> * <b>Description:</b> TODO: 描述該類的做用 <br/> * @author <a href="turodog@foxmail.com">nasus</a><br/> */ @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 <br/> * Package Name:com.nasus.controller <br/> * Date:2019/1/28 21:41 <br/> * <b>Description:</b> TODO: 測試自定義屬性加載<br/> * * @author <a href="turodog@foxmail.com">nasus</a><br/> */ @RestController @RequestMapping("/test") public class TestController { @Autowired private PropertiesBean propertiesBean; @GetMapping("/getInfo") public PropertiesBean getInfo(){ return propertiesBean; } } 複製代碼
訪問 http://localhost:8080/test/getInfo 查看加載結果:spring
能夠看到,加入 @value 註解以後,配置文件的屬性都被讀取出來了。之前,或許咱們還須要專門寫一個讀取配置文件的工具類才能把屬性讀取出來,如今有了 Spring ,咱們能夠直接使用 @value 就能讀取了,簡直不能太方便。本例源碼在這:github 地址sql
配置文件代碼以下:數據庫
# 防止讀取亂碼
spring.http.encoding.charset=UTF-8
# 項目啓動端口
server.port=9999
# 自定義配置
com.nasus.author.name=一個優秀的廢人
com.nasus.article.title=SpringBoot配置文件詳解
com.nasus.doing=${com.nasus.author.name}寫文章《${com.nasus.article.title}》
複製代碼
能夠看到最後一個參數配置使用了前兩個的參數配置,測試結果以下: 安全
有時項目需求,可能咱們須要配置一些隨機數,好比說爲了安全而隨機配置的服務器端口,以及登陸密鑰。這時咱們就能夠用 SpringBoot 的 random 屬性來配置隨機數,好比:
# 隨機字符串 com.nasus.article.value=${random.value} # 隨機int com.nasus.article.number=${random.int} # 隨機long com.nasus.article.bignumber=${random.long} # 10之內的隨機數 com.nasus.article.test1=${random.int(10)} # 10-20的隨機數 com.nasus.article.test2=${random.int[10,20]} 複製代碼
不少時候咱們開發項目都須要不少套環境,好比有測試環境,開發環境以及生產環境。不一樣的環境就須要使用不一樣的配置文件,爲此咱們能夠根據這 3 個環境分別新建 如下 3 個配置文件。
application-dev.properties:開發環境 application-test.properties:測試環境 application-prod.properties:生產環境
項目中默認的配置文件是 application.properties 。這時咱們能夠根據本身的環境去使用相應的配置文件,好比說,項目各個環境的端口必須不同。那咱們能夠這樣配置: application-dev.properties:開發環境
server.port=6666
複製代碼
application-test.properties:測試環境
server.port=7777
複製代碼
application-prod.properties:生產環境
server.port=8888
複製代碼
假如,如今我打包上線,那就必須用生產環境的配置文件了,這時咱們能夠在 默認的配置文件 application.properties 中加入如下配置便可
spring.profiles.active=prod
複製代碼
SpringBoot 的配置文件有兩種格式,一種是 .properties 格式(以上栗子都是用的這種)還有一種用的是 .yaml 格式。如下是用 yaml 方式配置。這兩種格式並沒有好壞之分,純看我的使用習慣。我就比較喜歡 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: 你的數據庫名稱 password: 你的數據庫密碼 jpa: hibernate: ddl-auto: update #ddl-auto:設爲update 表示每次都從新建表 show-sql: true 複製代碼
以上就是我對 SpringBoot 配置文件的理解與使用,固然以上只是介紹了一下 SpringBoot 配置文件的幾個用法,它的用法還有很是多,想要深刻使用仍是須要各位多多深刻實踐。最後,對 Python 、Java 感興趣請長按二維碼關注一波,我會努力帶給大家價值,若是以爲本文對你哪怕有一丁點幫助,請幫忙點好看,讓更多人知道。
另外,關注以後在發送 1024 可領取免費學習資料。資料內容詳情請看這篇舊文:Python、C++、Java、Linux、Go、前端、算法資料分享