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失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

最新评论