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