1. 程式人生 > >Spring Boot(二)配置檔案詳解

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