java中@ConfigurationProperties失效的问题解决

 更新时间:2024年09月24日 10:27:27   作者:?ci?ci  
在Java开发中,使用@ConfigurationProperties注解读取配置文件时,如果配置类中的属性设置为static,将无法正确读取配置值,本文就来介绍一下具体解决方法,感兴趣的可以了解一下

在使用@ConfigurationProperties读取配置文件(application.yml或application.properties)时无法获取到配置文件的值。

原代码:

@Component
@ConfigurationProperties(prefix = "aichatting")
public class AIChattingConfig
{
    //资源映射路径
    private static String profile;

    //资源映射路径 前缀
    public static final String RESOURCE_PREFIX = "/profile";

    public static String getProfile()
    {
        return profile;
    }

    public void static setProfile(String profile)
    {
        AIChattingConfig.profile = profile;
    }
}

配置文件(application.yml):

aichatting:
  profile: D:/AI-Chatting/uploadPath

为了方便使用,我将配置类中的profile属性设置为static,如果读取成功的话执行AIChattingConfig.getProfile()就会返回为配置文件中的值(D:/AI-Chatting/uploadPath)

原因:@ConfigurationProperties无法识别静态方法,所以属性的setter需要为非静态

修改代码:

@Component
@ConfigurationProperties(prefix = "aichatting")
public class AIChattingConfig
{
    //资源映射路径
    private static String profile;

    //资源映射路径 前缀
    public static final String RESOURCE_PREFIX = "/profile";

    public static String getProfile()
    {
        return profile;
    }

    //@ConfigurationProperties无法识别静态方法,所以setter需要为非静态
    public void setProfile(String profile)
    {
        AIChattingConfig.profile = profile;
    }
}

到此这篇关于java中@ConfigurationProperties失效的问题解决的文章就介绍到这了,更多相关java @ConfigurationProperties失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Java调用高德地图API根据详细地址获取经纬度详细教程

    Java调用高德地图API根据详细地址获取经纬度详细教程

    写了一个经纬度相关的工具,分享给有需求的小伙伴们,下面这篇文章主要给大家介绍了关于Java调用高德地图API根据详细地址获取经纬度,文中通过图文以及代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • 浅谈java中的一维数组、二维数组、三维数组、多维数组

    浅谈java中的一维数组、二维数组、三维数组、多维数组

    下面小编就为大家带来一篇浅谈java中的一维数组、二维数组、三维数组、多维数组。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Zookeeper中如何解决zookeeper.out文件输出位置问题

    Zookeeper中如何解决zookeeper.out文件输出位置问题

    这篇文章主要介绍了Zookeeper中如何解决zookeeper.out文件输出位置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Java中ResponseBodyEmitter的实现

    Java中ResponseBodyEmitter的实现

    这篇文章主要介绍了Java中ResponseBodyEmitter的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 如何把springboot jar项目 改为war项目

    如何把springboot jar项目 改为war项目

    这篇文章主要介绍了如何把springboot jar项目 改为war项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java线程中的ThreadLocal类解读

    Java线程中的ThreadLocal类解读

    这篇文章主要介绍了Java线程中的ThreadLocal类解读,ThreadLocal是一个泛型类,作用是实现线程隔离,ThreadLocal类型的变量,在每个线程中都会对应一个具体对象,对象类型需要在声明ThreadLocal变量时指定,需要的朋友可以参考下
    2023-11-11
  • Java并发编程之volatile变量介绍

    Java并发编程之volatile变量介绍

    这篇文章主要介绍了Java并发编程之volatile变量介绍,volatile提供了弱同步机制,用来确保将变量更新通知到其它线程,需要的朋友可以参考下
    2015-04-04
  • SpringBoot项目创建单元测试的流程步骤

    SpringBoot项目创建单元测试的流程步骤

    在日常开发的过程中,对自己的代码进行单元测试是个非常重要的过程,一方面可以最小范围的针对一个方法进行测试,提高测试的简便性以及测试的成本,本篇文章主要是为了总结一下如何优雅的在Springboot项目中使用单元测试去测试功能,需要的朋友可以参考下
    2024-11-11
  • SpringBoot使用CORS实现无缝跨域的方法实现

    SpringBoot使用CORS实现无缝跨域的方法实现

    CORS 是一种在服务端设置响应头部信息的机制,允许特定的源进行跨域访问,本文主要介绍了SpringBoot使用CORS实现无缝跨域的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 基于logback 实现springboot超级详细的日志配置

    基于logback 实现springboot超级详细的日志配置

    java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用)。这篇文章主要介绍了基于logback springboot超级详细的日志配置,需要的朋友可以参考下
    2019-06-06

最新评论