首頁 > 軟體

springboot如何獲取yml檔案的自定義引數

2022-03-23 13:01:43

如何獲取yml的自定義引數

需求

通過yml檔案設定引數,在需要的地方獲取並使用引數

實現方式

方式一:

先上要獲取的設定引數,在用到引數的位置獲取yml檔案裡面配好的值,如果就一兩個地方用到,那直接寫死也不是不行,但是最好通過組態檔的方式,萬一引數變了,只要改組態檔就行,業務程式碼不用動

yml設定引數:

 Config檔案

@Configuration //定義設定類
@Data //提供get set方法
@ConfigurationProperties(prefix = "xxx.smc") //yml設定中的路徑
public class SmcConfig  {
    private String ip;
    private String name;
    private String password; 
}

具體使用

 方式二:

通過value註解的方式

自定義yml檔案,獲取設定引數

操作yml檔案依賴

<dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>1.29</version>
 </dependency>

mqtt連結引數,及讀取yml檔案工具

public class MqttParamObj {
    public String mqttBrokerIp;
    public Short mqttBrokerPort;
    public String userName;
    public String password;
    public String mqttClientId;
    public static MqttParamObj readConfigFile(){
        MqttParamObj mqttParamObj = null;
        File file = new File(System.getProperty("user.dir") + "/MqttParams.yml");
        try {
            InputStream fileInputStream = new FileInputStream(file);
            if(Objects.nonNull(fileInputStream)){
                Yaml yaml = new Yaml();
                mqttParamObj = yaml.loadAs(fileInputStream, MqttParamObj.class);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        return mqttParamObj;
    }
}

MqttParams.yml 檔案位置 

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com