spring 如何給靜態變數注入值

2021-07-30 15:49:39 字數 723 閱讀 7093

有一次在專案中有乙個工具類的屬性是static, 我造仿別人的注入方式也試著給我自己在工具類裡定義的變數進行注入,結果發現變數還是null,倒騰了半天都沒倒騰出來。

正好在下班的時候靈光一閃,發現是不是因為變數是static的原因導致spring忽略掉次變數。

因為靜態變數不屬於物件,只屬於類,也就是說在類被載入位元組碼的時候變數已經初始化了,也就是給該變數分配記憶體了,導致spring忽略靜態變數。

解決方法是:

private static isysuserservice service;

private static isysresourceservice sourceservice;

private static isysparamservice sysparamservice;

@autowired

public void setservice(isysuserservice service)

@autowired

public void setsourceservice(isysresourceservice sourceservice)

@autowired

public void setsysparamservice(isysparamservice sysparamservice)

也就是用非靜態的setter來進行注入,千萬不能用static的setter,否則還是不能注入成功。

spring boot 給靜態變數注入值

問題 public class bisfrontfileutil private static string ccbipaddress value private static int ccbipport public static boolean putfiletofront string fil...

Spring依賴注入static靜態變數相關問題

問題 springmvc給靜態變數注入報 autowired annotation is not supported on static fields 原因 spring annotation不支援靜態變數注入 解決 方法一 把get,set方法的static修飾符去掉,然後在set方法上面加 au...

Spring中靜態變數的注入問題

開發過程中需要將類注入到另乙個類的靜態變數中,一開始寫法如下所示 component public class test 上面這種情況,在呼叫user物件時會報nullpointerexception,因為userlogin物件並沒有注入進來。為什麼呢?因為靜態變數並不屬於物件的屬性,而是屬於類的屬...