ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用@ConfigurationProperties注解获取为null的问题

2022-08-05 13:03:19  阅读:113  来源: 互联网

标签:set public winUploadPath ConfigurationProperties static 注解 null 过程 yml


使用@ConfigurationProperties注解获取为null的问题
https://blog.csdn.net/weixin_43888891/article/details/123785396

目录

一、问题描述

通过get方法去取值一直为null。代码如下:

@Component
@ConfigurationProperties(prefix = "file")
public class ServiceConfig {
    /**
     * windows上传路径
     */
    private static String winUploadPath;
    public static String getWinUploadPath() {
        return winUploadPath;
    }
    public static void setWinUploadPath(String winUploadPath) {
        ServiceConfig.winUploadPath = winUploadPath;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

application.yml配置:

file:
  winUploadPath: D:/opt/tongue/uploadPath
  • 1
  • 2

二、解决过程

过程一

刚开始一直ide弹这个框,以为是这个问题。
在这里插入图片描述
然后搜了资料,有的说下面依赖是生成配置元信息,不引入yml文件就失效了

于是引入之后并没有效果!!!

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-configuration-processor</artifactId>
     <optional>true</optional>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

过程二

不要在application.yml/properties文件中使用camel大小写。尽量用-分割。
我看了一下原生框架的配置,发现人家确实没大小写,于是改了仍然没有用。

过程三(成功解决!)

因为想的是直接获取属性,所以都是设置的static,包括set方法。于是set方法去除掉static后 成功解决。

三、总结

set方法被static 修饰无法获取到值!!!

不过尽量咱们也规范点不要在application当中区分大小写,尽量用- 。
用横杠的话,其实在java文件当中,他是会自动转换的。

我最终改成了这样,发现在java文件当中的winUploadPath属性照样可以读到值。

file:
  win-upload-path: D:/opt/tongue/uploadPath
  • 1
  • 2

还有要注意的就是一定要有get、set方法,没有貌似也读不了值的。

标签:set,public,winUploadPath,ConfigurationProperties,static,注解,null,过程,yml
来源: https://www.cnblogs.com/sunny3158/p/16553925.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有