解决static类使用@Value获取yml文件获取不到的问题
更新时间:2024年09月19日 16:06:42 作者:只会看代码的可达鸭
在静态类中直接使用@Value注解无法获取yml文件中的配置,解决方案是在工具类Utils中创建静态的setter方法,并从外部类ServiceClass中调用这个方法来设置值,这种方法通过外部调用来间接设置静态变量的值,从而成功读取yml配置
static类使用@Value获取yml文件获取不到的问题
背景
要在static的类中访问yml中的配置。
直接在静态类中使用@Value是获取不到配置
解决方案
通过再工具类内部构造静态得setter方法,外部类进行调用。
1.yml定义

2.ServiceClass类,调用工具类的静态方法
public class ServiceClass {
@Value("${fileFormatConfig.picture}")
private String PICTURE_FORMAT;
@Value("${fileFormatConfig.video}")
private String VIDEO_FORMAT;
@Value("${fileFormatConfig.audio}")
private String AUDIO_FORMAT;
public void startDetection() {
//调用静态工具类
TestUtils.init(PICTURE_FORMAT, VIDEO_FORMAT, AUDIO_FORMAT);
TestUtils.originalTextDetection();
}
}3.Utils工具类
public class TestUtils {
private static String PICTURE_FORMAT;
private static String VIDEO_FORMAT;
private static String AUDIO_FORMAT;
// 静态setter,由外部类的某个方法(如@PostConstruct)调用
public static void init(String pictureFormat, String videoFormat, String audioFormat) {
PICTURE_FORMAT = pictureFormat;
VIDEO_FORMAT = videoFormat;
AUDIO_FORMAT = audioFormat;
}
public static void originalTextDetection() {
System.out.println(PICTURE_FORMAT);
System.out.println(VIDEO_FORMAT);
System.out.println(AUDIO_FORMAT);
}
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
ElasticSearch学习之ES Mapping实战示例
这篇文章主要为大家介绍了ElasticSearch学习之ES Mapping实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-01-01
SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码
这篇文章主要为大家介绍了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09
详解spring cloud使用Hystrix实现单个方法的fallback
本篇文章主要介绍了详解spring cloud-使用Hystrix实现单个方法的fallback,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-01-01
Spring Boot整合 NoSQL 数据库 Redis详解
这篇文章主要为大家介绍了Spring Boot整合 NoSQL 数据库 Redis详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-09-09


最新评论