spring-boot-route(二)讀取配置檔案的幾種方式
阿新 • • 發佈:2020-10-03
Spring Boot提供了兩種格式的配置檔案,分別是`properties` 和 `yml`。Spring Boot最大的特點就是自動化配置,如果我們想修改自動化配置的預設值,就可以通過配置檔案來指定自己伺服器相關的引數。
配置檔案集約管理了配置資訊,如果把配置引數寫到Java程式碼中,維護起來非常不方便,如果使用配置檔案,我們可以統一管理,統一修改。我比較推薦使用`yml`格式的配置檔案,`YAML`是專門用來寫配置檔案的語言,通常以yml為字尾,它的結構非常清晰,更易於閱讀。
將自定義的配置寫在配置檔案中後,如果想要在java程式碼中使用配置,這時候就需要讀取配置檔案,讀取配置檔案的方式有三種,我們挨個介紹一下如果進行讀取!
### 第一種:使用@Value註解讀取
第一步:在配置檔案中增加加入以下配置
```yml
config:
name: Java旅途
desc: spring-boot-route
```
第二部:新建Java類讀取配置資訊
```java
@RestController
public class GetValue {
@Value("${config.name}")
private String name;
@Value("${config.desc}")
private String desc;
@GetMapping("getValue")
public String getValue(){
return "name="+name+";desc="+desc;
}
}
```
@Value註解使用簡單,適合單個引數的注入。
### 第二種:使用@ConfigurationProperties讀取
@ConfigurationProperties與@Value相比,更加適合讀取陣列型別的引數。
### 1. 獲取單個物件
第一步:在yml檔案中新建物件型別的配置資訊
```yml
configs:
config:
name: Java旅途
desc: spring-boot-route
```
第二步:新建實體對映配置資訊
```java
@Component
@ConfigurationProperties(prefix = "configs.config")
@Data
public class Config {
private String name;
private String desc;
}
```
第三步:新建類測試是否獲取到引數
```java
@RestController
public class GetConfigurationProperties {
@Autowired
private Config config;
@GetMapping("/getConfig")
public String getConfig(){
return config.getName()+";"+config.getDesc();
}
}
```
### 2. 獲取物件集合
第一步:在yml檔案中新建陣列型別的引數
```yml
configs:
config:
- name: Java旅途
desc: spring-boot-route
- name: javatrip
desc: spring-boot-yml
```
第二步:新建實體對映配置資訊
```java
@Component
@ConfigurationProperties(prefix = "configarr")
@Data
public class Configs {
priv