问题重现:读取配置文件(**.yml)中的值,获取为null
// 读取配置文件(**.yml)中的值 value = "${upload.minio.minio_url}") (private static String minioUrl;
问题解析:
java中static/final修饰的变量,通过@Value是获取不到值的。
问题解决方案:
方案一:在变量的seter方法上使用@Value
1.静态变量的setter 方法需要去掉 static 修饰词,
2.并需要使用public修饰,
3.最后需要注意要在类上加上@Component ,才可以成功注入。
value = "${upload.minio.minio_url}") (public static void setMinioUrl(String minioUrl) { MinioUtil.minioUrl = minioUrl; }
方案二:通过中间变量赋值:在类上加上@Component
private static String minioUrl; value = "${upload.minio.minio_url}") (private String minioUrl2; public void init() { minioUrl = minioUrl2; }