zoukankan      html  css  js  c++  java
  • 【Java】@Value不能给静态变量直接赋值问题

    1. 平时用的时候,直接在变量头上加上@Value就能到值(其中local.file.temp.dir是配置文件properties的)
    @Value(value = "${local.file.temp.dir}")
    private String savePath;
    2. 但是当savePath被static修饰了之后,就赋不了值
    @Value(value = "${local.file.temp.dir}")
    private static String savePath; 
    这是因为Spring Boot 不支持/不允许把值注入到静态变量中,但是也给出了解决的方案
    3. 把@Value(value="${local.file.temp.dir}")放到静态变量的set方法上面即可,需要注意的是set方法要去掉static,还有就是当前类要交给spring来管理
    @Component
    public class PropConstant {

      /**文件存储目录*/
      public static String SAVE_PATH;
      //记得去掉static
      @Value(value="${local.file.temp.dir}")
      public void setSavePath(String savePath){
      SAVE_PATH = savePath;
      }
    }

  • 相关阅读:
    PKUSC2021游记
    P3349 [ZJOI2016]小星星
    序二
    1.3 解析库的安装
    1.2 请求库的安装
    1.5 存储库的安装
    1.6 Web 库的安装
    1.7 App 爬取相关库的安装
    2.1 HTTP 基本原理
    1.9 部署相关库的安装
  • 原文地址:https://www.cnblogs.com/jxd283465/p/13612468.html
Copyright © 2011-2022 走看看