sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  1796 随笔 :: 22 文章 :: 24 评论 :: 226万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

使用@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方法,没有貌似也读不了值的。

posted on   sunny123456  阅读(655)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-08-05 js 三个input输入框,组合查询。
2021-08-05 Vue.js组件教程 https://www.jb51.net/Special/926.htm
2021-08-05 vue.js实战教程 https://www.jb51.net/Special/978.htm
2021-08-05 原生JS实现多条件筛选
2021-08-05 php结合js实现多条件组合查询
2021-08-05 js前端 多条件筛选查询
2021-08-05 JS 判断字符串是否全部为数字
点击右上角即可分享
微信分享提示