java中@ConfigurationProperties失效的问题解决
在使用@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失效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
BeanUtils.copyProperties复制不生效的解决
这篇文章主要介绍了BeanUtils.copyProperties复制不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09
java基于servlet使用组件smartUpload实现文件上传
这篇文章主要介绍了java基于servlet使用组件smartUpload实现文件上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-10-10
Springboot使用@Cacheable注解实现数据缓存
本文介绍如何在Springboot中通过@Cacheable注解实现数据缓存,在每次调用添加了@Cacheable注解的方法时,Spring 会检查指定参数的指定目标方法是否已经被调用过,文中有详细的代码示例,需要的朋友可以参考下2023-10-10


最新评论