中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot解析怎么指定Yaml配置文件

發布時間:2023-05-11 17:20:18 來源:億速云 閱讀:109 作者:iii 欄目:開發技術

這篇“SpringBoot解析怎么指定Yaml配置文件”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SpringBoot解析怎么指定Yaml配置文件”文章吧。

1、自定義配置文件

在resources下創建my.yaml文件,“-”用來表示數組類型,一定要注意空格

my:
  contents:
    - id: 12121
      name: nadasd
    - id: 3333
      name: vfffff

2、配置對象類

創建配置類對象,在類上添加@Component、@PropertySource、@ConfigurationProperties注解。

@Component是將該類交由spring管理,@PropertySource用來指定配置文件及解析Yaml格式,@ConfigurationProperties是將解析后的配置文件屬性自動注入該類的屬性。

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
@PropertySource(value = "classpath:my.yaml", factory = YamlPropertiesSourceFactory.class)
@ConfigurationProperties(prefix = "my")
public class MyProperties {

    private List<content> contents = new ArrayList<>();

    public List<content> getContents() {
        return contents;
    }

    public void setContents(List<content> contents) {
        this.contents = contents;
    }


}

class content {
    private String id;

    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

@PropertySource注解是Spring用于加載配置文件,@PropertySource屬性如下:

  • name:默認為空,不指定Spring自動生成

  • value:配置文件

  • ignoreResourceNotFound:沒有找到配置文件是否忽略,默認false,4.0版本加入

  • encoding:配置文件編碼格式,默認UTF-8 4.3版本才加入

  • factory:配置文件解析工廠,默認:PropertySourceFactory.class 4.3版本才加入,如果是之前的版本就需要手動注入配置文件解析Bean

Spring Boot 默認不支持@PropertySource讀取yaml 文件,需要自定義PropertySourceFactory進行解析。

3、YamlPropertiesSourceFactory

創建YamlPropertiesSourceFactory類用來解析Yaml格式的文件。

import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.core.io.support.PropertySourceFactory;

import java.io.IOException;
import java.util.List;
import java.util.Optional;

public class YamlPropertiesSourceFactory implements PropertySourceFactory {

    @Override
    public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
        String resourceName = Optional.ofNullable(name).orElse(resource.getResource().getFilename());
        List<PropertySource<?>> yamlSources = new YamlPropertySourceLoader().load(resourceName, resource.getResource());
        return yamlSources.get(0);
    }

}

以上就是關于“SpringBoot解析怎么指定Yaml配置文件”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大悟县| 凉城县| 兴仁县| 华安县| 平和县| 商城县| 高青县| 贵港市| 德州市| 泗水县| 新巴尔虎右旗| 霸州市| 盘锦市| 双柏县| 崇信县| 道孚县| 宜黄县| 普洱| 玉山县| 尼勒克县| 诸城市| 两当县| 舟山市| 雅江县| 临潭县| 鸡泽县| 延吉市| 福贡县| 广西| 大城县| 和顺县| 汪清县| 四子王旗| 辽源市| 无为县| 滦平县| 南投市| 沾益县| 临清市| 讷河市| 潮安县|