首頁 >Java >java教程 >Springboot怎麼指定取得yml檔案裡的設定值

Springboot怎麼指定取得yml檔案裡的設定值

王林
王林轉載
2023-05-15 09:55:121304瀏覽

內容:

這裡分別介紹兩種方式,都是基於註解實現,分別是:

@Value("${xxxxx.xx}")

@ConfigurationProperties(prefix = "xxxxx")

進入主題:

@Value("${xxxxx.xx}")

使用這種方式非常簡單(每一個註解獲取一個對應的配置值),

在yml裡面加入我們的自訂配置項,如(大小寫隨意,調用時對應好就行):

Springboot怎麼指定取得yml檔案裡的設定值

指定取得這些值去使用,如:

@Value("${myKey.tua}")
    private  String tuaKey;
    @Value("${myKey.aco}")
    private  String acoKey;
    @Value("${mynum.new}")
    private  String myNum;
 
    @GetMapping("/getMyTest")
    public void getMyTest(){
 
        System.out.println("tuaKey:"+tuaKey);
        System.out.println("acoKey:"+acoKey);
        System.out.println("myNum:"+myNum);
    }

可以看到結果,取得正常:

Springboot怎麼指定取得yml檔案裡的設定值

@ConfigurationProperties(prefix = "xxxxx")

使用這種方式也非常簡單(一次將多個配置值取得並範例化成bean放入到spring容器裡面),

在yml裡面加入我們的自訂配置項,如(注意,使用一開始的key參數使用小寫,使用大寫會出錯,因為prefix不支援駝峰命名和下劃線形式):

Springboot怎麼指定取得yml檔案裡的設定值

然後我們建立一個對於這些配置項的實體類,並使用上註解@ConfigurationProperties ,如:

prefix指前綴,一般也就是第一個,我們這個例子的第一個是myinfo

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
/**
 * @Author : JCccc
 * @CreateTime : 2020/5/19
 * @Description :
 **/ 
 
@Component
@ConfigurationProperties(prefix = "myinfo")
public class MyInfo {
 
    private String name;
    private Integer age;
    private String description;
 
    @Override
    public String toString() {
        return "MyTest{" +
                "name="" + name + """ +
                ", age=" + age +
                ", description="" + description + """ +
                "}";
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public Integer getAge() {
        return age;
    }
 
    public void setAge(Integer age) {
        this.age = age;
    }
 
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
}

指定取得這些值去使用,也就是相當於使用這個類,直接配合@Autowired 使用即可:

@Autowired
    MyInfo myInfo;
 
    @GetMapping("/getMyTest")
    public void getMyTest(){
 
        System.out.println("myInfo:"+myInfo.toString());
        System.out.println("myInfo name:"+myInfo.getName());
    }

可以看到結果,取得正常:

Springboot怎麼指定取得yml檔案裡的設定值

#

以上是Springboot怎麼指定取得yml檔案裡的設定值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除