spring boot 給靜態變數注入值

2021-08-10 21:26:43 字數 1047 閱讀 8207

###問題**:

public class bisfrontfileutil ")

private static string ccbipaddress;

@value("$")

private static int ccbipport;

public static boolean putfiletofront(string filename, string filecontentstr) else

} catch (exception e)

return flag;

}}

###結果:

執行後發現ccbipaddress為null ,ccbipport為0(int預設為0了)。

###原因:

後來google發現spring boot不允許/不支援把值注入到靜態變數中。

###修正方法:

spring boot支援set方法注入,我們可以利用非靜態set方法注入靜態變數

###修正**:

@component

public class bisfrontfileutil ")

public void setccbipaddress(string ccbipaddress)

@value("$")

public void setccbipport(int ccbipport)

/*** 上傳檔案至bis前置機

* @param filename

* @param filecontentstr

* @return

*/public static boolean putfiletofront(string filename, string filecontentstr) else

} catch (exception e)

return flag;

}}

###注意:

1、 修正**中的@component不可丟掉了

2、 set方法要是非靜態的

Springboot靜態變數注入問題

在使用springboot框架時,可能遇到給自定義的工具類的靜態成員變數賦值,此時spring又不支援直接給靜態變數賦值,在網上查了許多,發現其思想為通過賦值給非靜態類的非靜態方法賦值,同時利用靜態方法成員變數的get或有參建構函式等進行呼叫賦值。換賦值 如 public class methodt...

Value 給靜態變數賦值

value可以直接獲取配置檔案裡的配置資訊 今天給靜態變數賦值的時候為null,一查才發現 value不能直接給靜態變數賦值。需要做如下變通 把註解放在變數的set方法上面 注意set方法不能用static修飾 private static string enc path private stati...

靜態變數和非靜態變數

class string1 a和b編譯報錯,can not make a static referrence to no static filed s3,s4 分析 string s1 pingguo string s2 xiangjiao string s3 new string lizi str...