@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小时内删除。