一、Spring Boot配置文件簡介

(1)名字必須為application,否則無法識別。后綴有三種文件類型: properties/yml/yaml,但是yml和yaml使用方法相同
(2) Spring Boot 項?默認的配置文件為 properties ,是最早期的配置文件格式,
(3) properties比yml文件優先級更高: 當 properties 和 yml 一起存在一個項目中時,如果配置文件中出現了同樣的配置,比如 properties 和 yml 中都配置了“server.port”, 那么這個時候會以 properties 中的配置為主,也就是 .properties 配置?件的優先級最高,但加載完 .properties 文件之后,也會加載 .yml 文件的配置信息。
(4) 通常情況一個項目中只會存在一種格式的配置文件。
二、配置文件properties/yml配置內容
2.1??properties/yml基本語法
properties 鍵值對的形式:key=value
yml :樹形結構的配置文件,它的基礎語法是"key: value",value前面有一個空格
2.2 端口號配置
# 配置項?端?號
server.port=8080
2.3 數據庫配置
#配置數據庫連接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&
spring.datasource.username=root
spring.datasource.password=root
2.4 讀取配置文件value
@Value 注解來實現
//applacation.yml文件ykey:key1: hello//class文件
//讀取yml文件中自定義設置的值
@Value("${ykey.key1}")
private?String keyValue;
//就會把yml配置文件中ykey.key1的值讀取并賦值給keyValue@Value("{num}")
private String keyValue;
//單純的賦值操作,將num賦給keyValue
?
2.5 配置對象
//applacation.yml文件
student:id: 1name: Javaage: 18//class文件
@ConfigurationProperties(prefix = "student")
@Component//student對象存儲到spring
public class Student {?private int id;?private String name;?private int age;
}//調用類
@RestController
public class StudentController {?@Autowiredprivate Student student;?@RequestMapping("/readStudent")public String readStudent(){?return student.toString();?}?
}
?
2.6 配置集合/map
//yml文件
dbtypes:name:- mysql- sqlserver- db2maptypes:map:k1: kk1k2: kk2k3: kk3//讀取集合
@Component?
@ConfigurationProperties("dbtypes")?
@Data
public class ListConfig {?private List name;?
}@RestController
public class ReadYml2 {?@Autowiredprivate ListConfig listConfig;@RequestMapping("/readList")public String readList(){?return listConfig.toString();?}?
}//map讀取方式同上
?
2.7 yml中單雙引號區別
//yml文件
test:str: 'hello \n world'str2: "hello \n world"//獲取配置值后輸出結果:
str:hello \n?world
str2:hello?world
(1)字符串默認不用加上單引號或者雙引號。
(2)單引號會轉義特殊字符,特殊字符最終只是?個普通的字符串數據
(3)雙引號不會轉義字符串里面的特殊字符;特殊字符會作為本身想表示的意思
注意:使用properties配置文件,中文會出現亂碼, yml配置文件可以顯示中文
三、yml配置文件優缺點
3.1 yml 優點
?
(1)yml 是?個可讀性?,寫法簡單、易于理解,它的語法和 JSON 語?類似。?
(2)yml ?持更多的數據類型,它可以簡單表達清單(數組)、散列表,標量等數據形態。它使用空百符號縮進和大量依賴外觀的特?,特別適合?來表達或編輯數據結構、各種配置?件等。
?(3)yml ?持更多的編程語?,它不止是 Java 中可以使?在 Golang、PHP、Python、Ruby、 JavaScript、Perl 中。
?
3.2?yml 缺點
?
不適合寫復雜的配置文件
?
四、創建不同環境的配置?件
application-dev.yml?
application-prod.yml?
2、在 application.yml 中設置運行環境??
spring.profiles.active=dev
3、以下是yml文件執行配置


從8080端口執行其他配置后變為9090
