SpringBoot沒(méi)有XML配置文件,但是還是有響應(yīng)的屬性參數(shù)配置文件的。Spring Boot優(yōu)先于配置的慣例,旨在讓?xiě)?yīng)用盡快啟動(dòng)和運(yùn)行。在一般情況下,我們不需要做太多的配置就能夠讓SpringBoot正常運(yùn)行。在一些特殊的情況下,我們需要做修改一些配置,或者需要有自己的配置屬性。
1.默認(rèn)配置
當(dāng)我們創(chuàng)建一個(gè)SpringBoot項(xiàng)目的時(shí)候,系統(tǒng)默認(rèn)會(huì)為我們?cè)趕rc/main/java/resources目錄下創(chuàng)建一個(gè)application.properties。SpringBoot支持yml類型的配置方式,即application.properties=application.yml,這一點(diǎn)和以前的Spring應(yīng)用有些區(qū)別,并且SpringBoot和SpringCloud應(yīng)用都推薦yml的配置方式,因?yàn)榕渲脤傩詴?huì)非常多,用yml的類型進(jìn)行層級(jí)的區(qū)分,看起來(lái)更方便一些。
例如:配置應(yīng)用serverName和端口號(hào)
application.yml
server:
port: 8088
contextPath: /config
這里說(shuō)一下yml格式文件的要求
1、配置多層之間以:隔開(kāi),比如server后面是:,不能缺少
2、下一級(jí)和上一級(jí)換行,且只能是兩個(gè)空格,不能是tab,比如port前面是兩個(gè)空格
3、屬性配置和參數(shù)值之間有一個(gè)空格,比如/config 前面是一個(gè)空格
上述文件配置應(yīng)用的虛擬路徑是/config,端口是8088,所以應(yīng)用啟動(dòng)后應(yīng)該是http://localhost:8088/config來(lái)進(jìn)行訪問(wèn)。
這一塊如果出現(xiàn)配置錯(cuò)誤很難發(fā)現(xiàn),一定要把yml的規(guī)則掌握清楚。
2.自定義屬性的讀取
實(shí)際應(yīng)用中會(huì)有很多自定義屬性,可以通過(guò)@Value的方式讀取
配置自定義參數(shù)
userConfig:
age: 20
讀取自定義參數(shù)
@RestController
public class ConfigController {
@Value("${userConfig.age}")
private String age;
@RequestMapping("/config")
public String config() {
return "age:" + age;
}
}
運(yùn)行如下:

3. 將配置文件的屬性賦給實(shí)體類
很多情況下,需要配置一個(gè)實(shí)體類,來(lái)接收配置文件的參數(shù)。
配置文件
userConfig:
age: 20
name: test
配置實(shí)體類
@Component
@ConfigurationProperties(prefix = "userConfig")
public class UserConfig {
private int age;
private String name;
// get set省略
}
獲取參數(shù)
@Autowired
private UserConfig userConfig;
@RequestMapping("/user")
public String user() {
return "name:" + userConfig.getName()+"<br/>age:"+userConfig.getAge();
}

4.總結(jié)
SpringBoot獲取配置文件還有其他方式,常用的就這幾類,后續(xù)和其他組件整合時(shí)再依次講配置用途。