国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Springboot多種情況yml配置代碼實例

瀏覽:2日期:2023-05-07 14:41:13

springboot 中各種配置項紀錄

1. @Value

最早獲取配置文件中的配置的時候,使用的就是這個注解,SpEL表達式語言。

// 使用起來很簡單@Value('${config.demo.value:defaultValue}') private String simpleValue;

通常我們配置的時候,不僅僅是一個單獨字段,可能是一組配置,用來組成一個對象。這個時候spring為我們提供了這個注解。

簡單的對象,在yml里也可以很簡單的寫出來。直接把每一個字段寫出即可。

而對復雜對象,如:list、map等的,就需要查一下資料了,這里簡單記錄一下寫法,直接看代碼。

# 配置示例config: demo: value: testValue simpleConfig: config: testConfig str1: abc,cde str2: - abc - cde configMap: key1: value1 海賊王: 路飛 simpleConfigs: - config: 羅賓 count: 1 - config: 烏索普 count: 1 - config: 索隆 count: 1 configObjMap: key1: config: value1 key2: config: value2

pojo 對象定義如下:

@Data@ConfigurationProperties(prefix = 'config.demo')@Configurationpublic class ConfigDemo { @Value('${config.demo.value:defaultValue}') private String simpleValue; /**===========簡單對象===========*/ /** * 對象 */ private SimpleConfig simpleConfig; /** * 字符串數組1 */ private List<String> str1; /** * 字符串數組1 */ private List<String> str2; /** * 鍵值對 */ private Map<String, String> configMap; /** * ===========多個復雜對象========== */ /** * 對象集合 */ private List<SimpleConfig> simpleConfigs; /** * 對象作為map值 */ private Map<String, SimpleConfig> configObjMap; @Data public static class SimpleConfig { // 注意:這里需要內部類是public的,要不然注入的時候會出錯。 private String config; private int count; }}

以上就是各種情況的書寫。其實也不難,list 就增加 - 來作為單個對象標識,而map就直接寫key即可。

而spring在存儲properties的時候是怎么處理的呢,我們可以斷點一下 PropertyPlaceholderHelper,在這里我們可以看到存儲各種配置的source如下圖:

Springboot多種情況yml配置代碼實例

底層都是通過一個ResourceReloadingMap來存儲的,那么存儲list的時候,是什么結構呢,如下:

Springboot多種情況yml配置代碼實例

// 存儲的時候是這樣的:simpleConfigs[0].config=configValuesimpleConfigs[0].count=countValue...

所以最終都是通過鍵值對的方式,只是對應的格式,spring可以解析成對應的樣子而已。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 南昌县| 洞头县| 洱源县| 伊金霍洛旗| 宝应县| 栾川县| 夹江县| 怀远县| 当阳市| 青阳县| 连州市| 长阳| 林州市| 天长市| 内江市| 明溪县| 清河县| 青岛市| 寿阳县| 天长市| 泰安市| 宜春市| 莱阳市| 基隆市| 龙游县| 鸡西市| 辽宁省| 丹巴县| 丰原市| 巴塘县| 呼伦贝尔市| 黄大仙区| 禄丰县| 民丰县| 定州市| 板桥市| 竹山县| 张家港市| 炎陵县| 滁州市| 三台县|