摘要:實(shí)現(xiàn)靜態(tài)注入類或者屬性場(chǎng)景是工具類一般都是靜態(tài)方法,靜態(tài)方法只能訪問靜態(tài)屬性。所以,我們需要靜態(tài)注入類或者屬性。常規(guī)操作注入類或者方法這樣,我們就把容器里的類和里的值注進(jìn)去了。
[spring實(shí)現(xiàn)靜態(tài)注入(類或者屬性)]()
場(chǎng)景是:工具類一般都是靜態(tài)方法,靜態(tài)方法只能訪問靜態(tài)屬性。所以,我們需要靜態(tài)注入類或者屬性。
常規(guī)操作:注入類或者方法:
@Autowired private TestService testService; @Resource private TestService testService; @Value("${key}") private String key;
這樣,我們就把容器里的類和Enviroment里的值注進(jìn)去了。
靜態(tài)注入操作:我們使用相同的方式進(jìn)行注入
@Autowired private static TestService testService; @Resource private static TestService testService; @Value("${key}") private static String key;
我們?cè)陟o態(tài)方法使用的時(shí)候,會(huì)出現(xiàn)null;
發(fā)現(xiàn)注入不進(jìn)去。
解決辦法有兩種方式:
(1)@PostConstruct方式實(shí)現(xiàn)
@Component?? public?class?TestUtil?{ @Autowired private?static?TestService?testService; private?static?TestUtil?testUtils; @PostConstruct?????? public?void?init()?{?????????? testUtils?=this;?????????? testUtils.testService?=this.testService;?????? }?? }
@PostConstruct 注解的方法在加載類的構(gòu)造函數(shù)之后執(zhí)行,也就是在加載了構(gòu)造函數(shù)之后,執(zhí)行init方法;(@PreDestroy 注解定義容器銷毀之前的所做的操作)這種方式和在xml中配置 init-method和 destory-method方法差不多,定義spring 容器在初始化bean 和容器銷毀之前的所做的操作;
(2)set方法注入實(shí)現(xiàn)
@Component?? public?class?TestUtil?{ private?static?TestService?testService; private?static?String?key; @Value("{key}") public?void?setTestService(String?key)?{?????????? TestUtil.key?= key;?????? }?? @Autowired public?void?setTestService(TestService?testService)?{?????????? TestUtil.testService?=this.testService;?????? }?? }
ok,完事,使用set方法注入,這種使用比較多
有問題請(qǐng)留言!
個(gè)人博客地址 https://blog.ailijie.top
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75550.html
摘要:的依賴關(guān)系,根據(jù)依賴關(guān)系配置完成之間的裝配。的行為信息,如生命周期范圍及生命周期各過程的回調(diào)函數(shù)。使用該種裝配模式時(shí),優(yōu)先匹配參數(shù)最多的構(gòu)造函數(shù)。如果提供了默認(rèn)的構(gòu)造函數(shù),則采用否則采用進(jìn)行自動(dòng)裝配。 點(diǎn)擊進(jìn)入我的博客 1 Spring容器與Bean配置信息 Bean配置信息 Bean配置信息是Bean的元數(shù)據(jù)信息,它由一下4個(gè)方面組成: Bean的實(shí)現(xiàn)類 Bean的屬性信息,如數(shù)...
摘要:入門和學(xué)習(xí)筆記概述框架的核心有兩個(gè)容器作為超級(jí)大工廠,負(fù)責(zé)管理創(chuàng)建所有的對(duì)象,這些對(duì)象被稱為。中的一些術(shù)語切面切面組織多個(gè),放在切面中定義。 Spring入門IOC和AOP學(xué)習(xí)筆記 概述 Spring框架的核心有兩個(gè): Spring容器作為超級(jí)大工廠,負(fù)責(zé)管理、創(chuàng)建所有的Java對(duì)象,這些Java對(duì)象被稱為Bean。 Spring容器管理容器中Bean之間的依賴關(guān)系,使用一種叫做依賴...
摘要:案例對(duì)靜態(tài)變量的注入為空案例代碼如下錯(cuò)誤案例這種方式是不能給靜態(tài)變量注入屬性值的解決方案一注解加在方法上面解決方案二注解因?yàn)樽⒔庑揎椀姆椒釉陧樞蛟跇?gòu)造方法之后靜態(tài)變量賦值之前,所 ...
摘要:甲乙交易活動(dòng)不需要雙方見面,避免了雙方的互不信任造成交易失敗的問題。這就是的核心思想。統(tǒng)一配置,便于修改。帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建對(duì)象首先,就要提供帶參數(shù)的構(gòu)造函數(shù)接下來,關(guān)鍵是怎么配置文件了。 前言 前面已經(jīng)學(xué)習(xí)了Struts2和Hibernate框架了。接下來學(xué)習(xí)的是Spring框架...本博文主要是引入Spring框架... Spring介紹 Spring誕生: 創(chuàng)建Spring的...
摘要:概述容器管理一個(gè)或多個(gè),這些是使用你提供給容器的配置元數(shù)據(jù)創(chuàng)建的例如,以定義的形式。在容器內(nèi)部,這些定義被表示為對(duì)象,其中包含其他信息以下元數(shù)據(jù)包限定的類名通常,定義的實(shí)際實(shí)現(xiàn)類。 Bean概述 Spring IoC容器管理一個(gè)或多個(gè)bean,這些bean是使用你提供給容器的配置元數(shù)據(jù)創(chuàng)建的(例如,以XML 定義的形式)。 在容器內(nèi)部,這些bean定義被表示為BeanDefinitio...
閱讀 1698·2023-04-26 01:02
閱讀 4841·2021-11-24 09:39
閱讀 1803·2019-08-30 15:44
閱讀 2872·2019-08-30 11:10
閱讀 1783·2019-08-30 10:49
閱讀 984·2019-08-29 17:06
閱讀 609·2019-08-29 16:15
閱讀 902·2019-08-29 15:17