@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;   } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM