Spring @Value为null

时间:2017-09-29 10:04:35

标签: java spring spring-boot

就像标题所说,我的@Value没有传递值

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

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

我有一个班级配置

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

在我的另一个名为Image的类中,我希望将String路径转换为File,以便稍后我可以使用此值:

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


问题是,当我使用我的程序并使用其中一个方法时,使用变量Directory(都是在Image类中编写),我得到一个NullPointerException:null并且奇怪的是当我在错误之后刷新站点发生一次,错误现在说NoClassDefFoundError:无法初始化类com.Project.Image

1 个答案:

答案 0 :(得分:7)

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

@Component
public class Configuration {

    private static String imagePath;

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