Spring Boot(二)配置檔案詳解
簡介
Spring Boot使用“習慣由於配置”(專案中存在大量預設的配置,而且內建tomcat)的理念,讓你的無需手動進行配置就可以將專案執行起來。使用Spring Boot很容易建立一個獨立執行的、準生產級別的Spring框架的專案。同時,Spring Boot還提供一個全域性配置檔案對一些預設配置項的值進行修改。
Spring Boot的全域性配置application.properties或application.yml檔案放在src\main\resources目錄或類路徑的/config下。推薦大家使用yml格式的配置檔案,下面演示配置檔案的使用。
修改預設配置
可以通過修改配置項的值修改Spring Boot的預設配置,如埠號、資料來源等。如將tomcat的預設埠號8080修改為8090,並將訪問路徑修改為"server"。可在application.yml中新增:
server:
port: 8080
servlet:
context-path: server
獲取配置檔案的屬性值
可以在配置檔案中加入自己的自定義屬性,然後在類中通過@Value獲取對應的屬性的值,在application.yml檔案中新增:
person:
name: huang
age: 23
編寫測試類FirstController.java
@RestController public class FirstController { @Value("${person.name}") private String name; @Value("${person.age}") private Integer age; @GetMapping("/hello") public String hello() { return "name is " + name + ",age is " + age; } }
啟動專案,訪問localhost:8080/hello,瀏覽器輸出“name is huang,age is 23”。證明配置檔案中的屬性值已經注入成功。
多環境配置
實際開發中,可能會有本地環境、測試環境、生產環境等多個環境,每個環境的配置不同(如埠號,資料來源配置)。如果每次都通過修改配置檔案中的值會顯得很繁瑣。辛好Spring提供Profile配置用來針對不同環境對不同配置的支援。下面將做簡單的演示,如測試環境用8080埠,生產環境用8888埠。
單個配置檔案
application.yml檔案的配置如下:
#選用哪個配置檔案 spring: profiles: active: dev --- #開發環境配置 spring: profiles: dev server: port: 8080 --- #生產環境 spring: profiles: prod server: port: 8888
多個配置資訊用---分隔開,spring.profiles.active指定選用哪個配置,這裡用的是dev的配置,啟動程式,可以發現程式的啟動埠是8080:
修改spring.profiles.active的值為prod,重啟專案,此時專案的啟動埠為8888:
多個檔案
在resources目錄下新建三個yml檔案。
測試環境配置檔案application-dev.yml:
server:
port: 8080
生產環境配置檔案application-prod.yml:
server:
port: 8888
application.yml,這裡先指定配置檔案為application-dev.yml,即開發環境:
spring:
profiles:
active: dev #指定用哪個配置檔案
啟動專案,可以發現程式的啟動埠為8080:
將application.yml中的spring.profiles.active值改為prod,則程式的啟動埠改為8888