SpringBoot 讀取 .yml配置文件的兩種方式(+工具類直接讀取:靜態轉換)

例在application.yml中添加:

upload:
  # 是否壓縮圖片
  is_compress: true
  # 圖片默認縮放比率
  DEFAULT_SCALE: 0.5d
  # 測試
  test: hh

如何獲取upload中的值呢?

一:在普通的的java類中獲取

    @Value("${upload.test}")
    private String test;

測試:

    @GetMapping("/test")
    @ResponseBody
    public String test() {
        return test;
    }

其他同理。。在 @Value 中 upload.屬性即可

二:建一個實體類,加上如下兩個註解,即可讀取配置文件

is_compress,DEFAULT_SCALE兩個舉例
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "upload")
public class uploadConfig {

    public boolean is_compress;

    public double DEFAULT_SCALE;

    public double getDEFAULT_SCALE() {
        return DEFAULT_SCALE;
    }

    public void setDEFAULT_SCALE(double DEFAULT_SCALE) {
        this.DEFAULT_SCALE = DEFAULT_SCALE;
    }

    public boolean isIs_compress() {
        return is_compress;
    }

    public void setIs_compress(boolean is_compress) {
        this.is_compress = is_compress;
    }

}

調用:利用 @Autowired 注入後調用即可

    @Autowired
    private uploadConfig conn;

    @GetMapping("/DEFAULT_SCALE")
    @ResponseBody
    public double DEFAULT_SCALE() {
        return conn.DEFAULT_SCALE;
    }

三:工具類中讀取

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;

/**
 * @ClassName 工具類直接讀取配置文件內容 靜態轉換
 * @Author ckx
 * @Date 2020/4/9 13:53
 **/
@Component
public class JWTUtil {
    public boolean is_compress;

    public double DEFAULT_SCALE;

    @Autowired
    private uploadConfig uploadConfig;
    /**
     * 靜態方法想使要使用一個非靜態對象,需要做一個初始化【重要】
     */
    @PostConstruct
    public void init() {
        is_compress = uploadConfig.isIs_compress();
        DEFAULT_SCALE = uploadConfig.getDEFAULT_SCALE();
    }
}

  使用時直接  “JWTUtil.屬性”  即可

參考:

https://blog.csdn.net/weixin_36775115/article/details/79539811

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章