@Value不能给静态变量直接赋值问题
1. 平时⽤的时候,直接在变量头上加上@Value就能到值(其中p.dir是配置⽂件properties的)
@Value(value = "${p.dir}")
private String savePath;
2. 但是当savePath被static修饰了之后,就赋不了值
@Value(value = "${p.dir}")
private static String savePath;
这是因为Spring Boot 不⽀持/不允许把值注⼊到静态变量中,但是也给出了解决的⽅案
3. 把@Value(value="${p.dir}")放到静态变量的set⽅法上⾯即可,需要注意的是set⽅法要去掉static,还有就是当前类要交给spring来管理@Component
static修饰的变量public class PropConstant {
/**⽂件存储⽬录*/
public static String SAVE_PATH;
//记得去掉static
@Value(value="${p.dir}")
public void setSavePath(String savePath){
SAVE_PATH = savePath;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论