1. 程式人生 > >SpringBoot(三):配置檔案介紹

SpringBoot(三):配置檔案介紹

全域性配置檔案

SpringBoot使用一個全域性的配置檔案application.properties(application.yml),該檔案放在resources目錄下或者類路徑下的/config下,一般我們放到resources目錄下。我們可以在全域性配置檔案中配置任意我們需要的東西,以application.properties為例:

server.port=8081    #埠號
server.context-path=/demo   //訪問路徑
server.server-path=*.action 
testValue=liudalei

這裡寫圖片描述

自定義配置檔案

為了不破壞核心檔案的原生態,但又需要有自定義的配置資訊存在,一般情況下會選擇自定義配置檔案來放這些自定義資訊。
我們以一個簡單的string.properties檔案舉例:在resources/config目錄下建立配置檔案string.properties,然後在SpringBoot啟動類上新增@PropertySource並指定我們自定義檔案的位置,如下:

@SpringBootApplication
@PropertySource(value = { "classpath:config/string.properties" }, ignoreResourceNotFound = true, encoding = "utf-8")
public class App {

    public static void main(String[] args) {

        SpringApplication.run(App.class, args);

    }
}
ignoreResourceNotFound=true表示找不到該檔案,不報錯。
.properties檔案預設使用ISO-8859-1,所有我們這裡設定的是utf-8

在controller通過@Value(“${屬性名}”)註解來載入我們自定義配置檔案中的屬性值:
這裡寫圖片描述

引數間引用

在application.properties中的各個引數之間也可以直接引用來使用,就像下面的設定:

com.lpl.name=liudalei
com.lpl.sex=boy
com.lpl.person=${com.lpl.name} is a ${com.lpl.sex}

當我們獲取com.lpl.person屬性的時候就會獲取到 liudalei is a boy

使用隨機數

Spring Boot的屬性配置檔案中可以通過${random}來產生int值、long值或者string字串,來支援屬性的隨機值。他只在載入時,初始化一次,重新整理瀏覽器不停地訪問,值是不會發生變化的

#測試隨機數
# 隨機字串  
com.test.random.value=${random.value}  
# 隨機int  
com.test.random.number=${random.int}  
# 隨機long  
com.test.random.bignumber=${random.long}  
# 10以內的隨機數  
com.test.random.test10=${random.int(10)}  
# 10-20的隨機數  
com.test.random.test10-20=${random.int[10,20]}

多環境開發

在我們的需求中,可能存在發簡訊的業務需求,如果我們在開發工程中一直進行簡訊的測試,無疑是一種浪費,我們只在實際的生產環境中才傳送簡訊,在開發工程中只生產隨機數就可以。那麼我們就可以藉助SpringBoot的註解@Profile幫助我們實現這樣的需求。
用兩個實現類舉例子:
生產環境:

@Service
@Profile("prod")
public class UserServiceImpl implements UserService {

    @Override
    public String getUserName() {
        // TODO Auto-generated method stub
        return "生產環境";
    }

}

開發環境:

@Service
@Profile("dev")
public class UserServiceImpl1 implements UserService {

    @Override
    public String getUserName() {
        // TODO Auto-generated method stub
        return "開發環境";
    }
}

然後我們在application.properties進行如下配置,就是生產環境

spring.profiles.active=prod

當然我們也可以在不同的開發環境中使用不同的的配置檔案,這樣我們就避免了修改配置檔案資訊。比如說上傳檔案的時候,在本地上傳地址和伺服器地址的切換,我們需要建以下幾個檔案,分別表示不同的開發環境:
application.properties
application-dev.properties: 開發環境
application-test.properties:測試環境
application-prod.properties 生產環境
在不同的配置檔案中進行不同開發環境的配置即可,我們需要用到哪個開發環境在application.properties中配置spring.profiles.active即可 ,例如我們使用的是開發環境,那麼我們需在application.properties中配置:

spring.profiles.active=dev