解决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);
    }

}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java调用opencv实现图片矫正功能

    Java调用opencv实现图片矫正功能

    这篇文章主要为大家详细介绍了Java如何调用opencv实现图片矫正功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • 详解Spring学习之编程式事务管理

    详解Spring学习之编程式事务管理

    本篇文章主要介绍了详解Spring学习之编程式事务管理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • ElasticSearch学习之ES Mapping实战示例

    ElasticSearch学习之ES Mapping实战示例

    这篇文章主要为大家介绍了ElasticSearch学习之ES Mapping实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Java之一文详解String字符串的用法

    Java之一文详解String字符串的用法

    本文将给大家重点讲解一下String的用法,因为这个太常用,也太常考了。String字符串的内容是比较多的,需要初学者进行专门的学习,尤其是它的一些底层原理更需要我们来了解,需要的同学跟着小编一起学习吧
    2023-05-05
  • SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码

    SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码

    这篇文章主要为大家介绍了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 详解spring cloud使用Hystrix实现单个方法的fallback

    详解spring cloud使用Hystrix实现单个方法的fallback

    本篇文章主要介绍了详解spring cloud-使用Hystrix实现单个方法的fallback,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 新手入门了解ArrayList扩容机制

    新手入门了解ArrayList扩容机制

    这篇文章主要介绍了新手入门了解ArrayList扩容机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • springMVC返回复杂的json格式数据方法

    springMVC返回复杂的json格式数据方法

    下面小编就为大家分享一篇springMVC返回复杂的json格式数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 多模字符串匹配算法原理及Java实现代码

    多模字符串匹配算法原理及Java实现代码

    这篇文章主要介绍了多模字符串匹配算法原理及Java实现代码,涉及算法背景,原理,构建过程简单介绍几Java代码实现等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Spring Boot整合 NoSQL 数据库 Redis详解

    Spring Boot整合 NoSQL 数据库 Redis详解

    这篇文章主要为大家介绍了Spring Boot整合 NoSQL 数据库 Redis详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论