spring boot的注入問題

2021-09-05 10:01:21 字數 782 閱讀 6073

從昨天下午到今天遇到乙個非常奇怪的問題,就是注入的問題,我的類都已經打上了  @component  或 @repository  ,按常理來說這樣就可以互相注入進來了,但是我通過@autowired 這個註解把其他類的例項注入進來,但是通過日誌列印最後獲取到的都是null,百思不得其解。通過網上搜尋,終於知道 呼叫者是使用new建立的,而呼叫者的屬性是通過@autowired  注入進來的,那麼自動注入就會失效。--- 出現這種情況有兩種解決方法。1、就是呼叫者加上 @component 或者 @repository  註解,然後通過@autowired注入到其他要呼叫這個類的類中。2、要不就是通過spring的上下文獲取所有的bean的方法來獲取b。

-----下面對spring boot @autowired 注入失效問題 進行總結:

/**

* spring上下文工具類,用以讓普通類獲取spring容器中的bean

*/@component

/***/

}@override}}

/*** 通過name獲取 bean

*/public static object getbean(string name)

}

然後在a中就可以這樣來獲取spring容器中的b例項

bclassinte***ce b = (bclassinte***ceimpl) springutil.getbean("bclassinte***ceimpl");
下面是一些其他的注入失敗案例

Springboot靜態變數注入問題

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

spring boot 配置注入

spring boot配置注入有變數方式和類方式 參見 spring boot 自定義配置屬性的各種方式 變數中又要注意靜態變數的注入 參見 spring boot 給靜態變數注入值 靜態變數注入需要注意 value 與set函式必須連著寫,不能分開。另外記得在類前加 component 注入 pr...

SpringBoot 屬性值注入的方式

1 configurationproperties和 value configurationproperties預設從全域性配置檔案中獲取值 configurationproperties value 功能批量注入配置檔案中的屬性值 乙個個的注入值 鬆散繫結 支援不支援 spel 不支援支援 jsr...