【问题标题】:Spring @Value is null [duplicate]Spring @Value 为空 [重复]
【发布时间】:2018-03-11 05:20:09
【问题描述】:

正如标题所说,我的 @Value 没有传递值

我在 application.properties 中写了以下内容:

project:
  image:
    path= "C:\\Users\\...."

我有一个类配置

@Component
public class Configuration{
    @Value("${project.image.path}")
    public static String ImagePath;
}

在我的另一个名为 Image 的类中,我想将字符串路径转换为文件,以便以后可以使用此值:

public class Image{
    static File Directory= new File (Configuration.ImagePath);
}


问题是,当我使用我的程序并使用其中一种方法时,其中使用了变量 Directory(它们都写在 Image 类中),我得到一个 NullPointerException: null 并且奇怪的是,当我在错误后刷新站点时发生一次,错误现在说 NoClassDefFoundError: Could not initialize class com.Project.Image

【问题讨论】:

  • 我觉得应该是project.image.path= "C:\\Users\\..去掉冒号设置.
  • 还是不行,不过谢谢
  • 你在Image类@Autowire Configuration?987654326@中自动装配了

标签: java spring spring-boot


【解决方案1】:

您不能在静态属性上使用@Value。删除 static 关键字或 为您的静态变量创建一个非静态设置器:

@Component
public class Configuration {

    private static String imagePath;

    @Value("${project.image.path}")
    public void setImagePath(String value) {
        this.imagePath = value;
    }
}

【讨论】:

  • 谢谢!这对我有用!
猜你喜欢
  • 1970-01-01
  • 2015-04-22
  • 2023-03-29
  • 2011-05-07
  • 2017-08-12
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多