就像标题所说,我的@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
答案 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;
}
}