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