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

你可能感兴趣的:(java,springboot)