SpringBoot - 1 基本配置
阿新 • • 發佈:2020-12-29
SpringBoot - 1 基本配置
06-SpringBoot配置-配置檔案分類
SpringBoot是基於約定的,所以很多配置都有預設值,但如果想使用自己的配置替換預設配置的話,就可以使用application.properties或者application.yml(application.yaml)進行配置。
-
預設配置檔名稱:application
-
在同一級目錄下優先順序為:properties>yml > yaml
例如:配置內建Tomcat的埠
properties:
server.port=8080
yml:
server: port: 8080
07-SpringBoot配置-yaml基本語法
- 大小寫敏感
- 資料值前邊必須有空格,作為分隔符
- 使用縮排表示層級關係
- 縮排時不允許使用Tab鍵,只允許使用空格(各個系統 Tab對應的 空格數目可能不同,導致層次混亂)。
- 縮排的空格數目不重要,只要相同層級的元素左側對齊即可
- ''#" 表示註釋,從這個字元一直到行尾,都會被解析器忽略。
server:
port: 8080
address: 127.0.0.1
name: abc
08-SpringBoot配置-yaml資料格式
物件(map):鍵值對的集合。
person: name: zhangsan # 行內寫法 person: {name: zhangsan}
陣列:一組按次序排列的值
address:
- beijing
- shanghai
# 行內寫法
address: [beijing,shanghai]
純量:單個的、不可再分的值
msg1: 'hello \n world' # 單引忽略轉義字元
msg2: "hello \n world" # 雙引識別轉義字元
引數引用
name: lisi
person:
name: ${name} # 引用上邊定義的name值
09-SpringBoot配置-獲取資料_1
@Value
#獲取普通配置 @Value("${name}") private String name; #獲取物件屬性 @Value("${person.name}") private String name2; #獲取陣列 @Value("${address[0]}") private String address1; #獲取純量 @Value("${msg1}") private String msg1;
Evironment
@Autowired
private Environment env;
System.out.println(env.getProperty("person.name"));
System.out.println(env.getProperty("address[0]"));
10-SpringBoot配置-獲取資料_2
@ConfigurationProperties
注意:prefix一定要寫
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private int age;
private String[] address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String[] getAddress() {
return address;
}
public void setAddress(String[] address) {
this.address = address;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
11-SpringBoot配置-profile
-
profile是用來完成不同環境下,配置動態切換功能的。
-
profile配置方式
多profile檔案方式:提供多個配置檔案,每個代表一種環境。
application-dev.properties/yml 開發環境
application-test.properties/yml 測試環境
application-pro.properties/yml 生產環境
yml多文件方式:
在yml中使用 --- 分隔不同配置
- profile啟用方式
- 配置檔案: 再配置檔案中配置:spring.profiles.active=dev
- 虛擬機器引數:在VM options 指定:-Dspring.profiles.active=dev
- 命令列引數:java –jar xxx.jar --spring.profiles.active=dev
12-SpringBoot配置-專案內部配置檔案載入順序
載入順序為上文的排列順序,高優先順序配置的屬性會生效
- file:./config/:當前專案下的/config目錄下
- file:./ :當前專案的根目錄
- classpath:/config/:classpath的/config目錄
- classpath:/ :classpath的根目錄
13-SpringBoot配置-專案外部配置載入順序
外部配置檔案的使用是為了對能不檔案的配合
1.命令列
java -jar app.jar --name="Spring“--server.port=9000
2.指定配置檔案位置
java -jar myproject.jar --spring.config.location=e://application.properties
3.外部不帶profile的properties檔案
classpath:/config/application.properties
classpath:/application.properties