解决static类使用@Value获取yml文件获取不到的问题
目录
- static类使用@Value获取yml文件获取不到的问题
- 背景
- 解决方案
- 1.yml定义
- 2.ServiceClashttp://www.devze.coms类,调用工具类的静态方法
- 3.Utils工具类
- 总结
static类使用@Value获取yml文件获取不到的问题
背景
要在static的类中访问yml中的配置。
直接在静态类中使用@Value是获取不到配置
解决方案
通过再工具类内部构造静态得setter方法,外部类进行调用。
1.yml定义
2.ServpythoniceClass类,调用工具类的静态方法
public class ServiceClass { @Value("${fileFormatConfig.picture}") private String PICTURE_FORMAT; @Value("${fileFormatConfig.video}") pri编程vate String VIDEO_FORMAT; @Value("${fileFormatConfig.audio}") private String AUDIO_FORMAT; public void startDetection() { //调用静态工具类 TestUtjavascriptils.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 originaljavascriptTextDetection() { System.out.println(PICTURE_FORMAT); System.out.println(VIDEO_FORMAT); System.out.println(AUDIO_FORMAT); } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论