JiuyeXD's Blog
九叶
九叶博主

越努力 越幸运

登录
夜间

@ConfigurationProperties注解 静态方法调用无效

1. 问题

前一阵子遇到的问题 突然想起来没有写笔记 先记录下来

SpringBoot中使用 @ConfigurationProperties 注入对象 普通方法调用可以 在静态方法中调用的时候读取不到参数

@Component
@ConfigurationProperties(prefix = "constants.ftp")
public class FtpConfig
{
    private static String host;
    private static int port;
    private static String user;
    private static String password;
    private static String uploadPath;
    private static String outputPath;

    public static String getXXX() {
        return xxx;
    }

    public static void setXXX(String xxx) {
        FtpConfig.xxx = xxx;
    }
  
    ...

}

2. 原因

因为@ConfigurationProperties只会调用非静态的set方法

3. 解决方案

将set方法改为非静态

    public static String getXXX() {
        return xxx;
    }

    public void setXXX(String xxx) {
        FtpConfig.xxx = xxx;
    }

@ConfigurationProperties会根据配置文件的信息调用返回对象的set方法

切记:prefix必须全部为小写,set方法必须为public

参考资料: https://blog.csdn.net/sl1990129/article/details/107064360

THE END