Spring不能注入Static變量的原因及Spring注入靜態(tài)變量
下面給大家介紹spring不能注入static變量的原因,具體詳情如下所示:
Spring 依賴(lài)注入 是依賴(lài) set方法
set方法是 是普通的對(duì)象方法
static變量是類(lèi)的屬性
@Autowired private static JdbcTemplate jdbcTemplate;
單純看這個(gè)注入過(guò)程是沒(méi)有報(bào)錯(cuò)的,但是在接下來(lái)的jdbcTemplate.query()會(huì)報(bào)空指針錯(cuò)誤.
ps:Spring注入靜態(tài)變量
今天碰到一個(gè)問(wèn)題,我的一個(gè)工具類(lèi)提供了幾種靜態(tài)方法,靜態(tài)方法需要另外一個(gè)類(lèi)的實(shí)例提供處理,因此就寫(xiě)出了這樣的代碼:
Class Util{
private static XXX xxx;
xxx = BeanUtil.getBean("xxx");
public static void method(){
xxx.func();
}
public static void method(){
xxx.func();
}
}
這里是使用的getBean的方式,獲得XXX的實(shí)例,但是別人說(shuō)這個(gè)方法不好,想要注入的方式。
但是靜態(tài)的XXX如何注入呢?
上網(wǎng)查了很多的說(shuō)法,其實(shí)很簡(jiǎn)單:
Class Util{
private static XXX xxx;
public void setXxx(XXX xxx){
this.xxx = xxx;
}
public void getXxx(){
return xxx;
}
public static void method1(){
xxx.func1();
}
public static void method2(){
xxx.func2();
}
}
在xml中正常配置注入就可以了。
<bean value="test" class="x.x.x.Util"> <property value="xxx" ref="xxx"/> </bean>
這里要注意,自動(dòng)生成的getter和setter方法,會(huì)帶有static的限定符,需要去掉,才可以。
相關(guān)文章
如何解決maven報(bào)錯(cuò):不知道這樣的主機(jī)問(wèn)題
這篇文章主要介紹了如何解決maven報(bào)錯(cuò):不知道這樣的主機(jī)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
Windows下gradle的安裝與配置的超詳細(xì)教程
這篇文章主要介紹了Windows下gradle的安裝與配置,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Springboot2.x+Quartz分布式集群的實(shí)現(xiàn)
這篇文章主要介紹了Springboot2.x+Quartz分布式集群的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
spring啟動(dòng)后保證創(chuàng)建的對(duì)象不被垃圾回收器回收
最近看到一個(gè)問(wèn)題是,spring在啟動(dòng)后如何保證創(chuàng)建的對(duì)象不被垃圾回收器回收?。所以本文結(jié)合jvm的垃圾回收機(jī)制和spring中的源代碼做出自己的一點(diǎn)猜測(cè)。有需要的朋友們可以參考借鑒。2016-09-09
Netty分布式Server啟動(dòng)流程服務(wù)端初始化源碼分析
本章主要講解server啟動(dòng)的關(guān)鍵步驟,?讀者只需要了解server啟動(dòng)的大概邏輯,?知道關(guān)鍵的步驟在哪個(gè)類(lèi)執(zhí)行即可,?并不需要了解每一步的運(yùn)作機(jī)制,?之后會(huì)對(duì)每個(gè)模塊進(jìn)行深度分析2022-03-03
Spring中Bean初始化和銷(xiāo)毀的方式總結(jié)
這篇文章主要為大家整理了Spring中Bean初始化和銷(xiāo)毀的多種方式,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下2023-04-04

