這裡分別介紹兩種方式,都是基於註解實現,分別是:
@Value("${xxxxx.xx}")
@ConfigurationProperties(prefix = "xxxxx")
使用這種方式非常簡單(每一個註解獲取一個對應的配置值),
在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); }
可以看到結果,取得正常:
使用這種方式也非常簡單(一次將多個配置值取得並範例化成bean放入到spring容器裡面),
在yml裡面加入我們的自訂配置項,如(注意,使用一開始的key參數使用小寫,使用大寫會出錯,因為prefix不支援駝峰命名和下劃線形式):
然後我們建立一個對於這些配置項的實體類,並使用上註解@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檔案裡的設定值的詳細內容。更多資訊請關注PHP中文網其他相關文章!