3.跟我學(xué)SpringBoot-配置文件注入

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)行如下:


參數(shù)運(yùn)行.png

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();
    }
注入實(shí)體類.png

4.總結(jié)

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

源碼下載

本例子詳細(xì)源碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容