Spring動態獲取IoC容器中管理的Bean

2022-01-29 13:32:10 字數 748 閱讀 6892

spring框架將di模式發揮到了極至,因此,系統裡面用spring管理的bean相互之間的獲取是非常方便的,只要使用者提供乙個setter方法並在配置檔案中配置該屬性就可以。

但是,對於系統中非spring框架管理的類,如果需要獲取spring管理的類,或者,程式中需要動態的根據be

an的id來獲取bean例項,不可能事先為該類提供所有需要的bean屬性的setter方法,在類似這樣的情況下,

獲取spring框架管理的類例項的方法有多種,現在簡單總結如下:

在通過它獲取需要的類例項。

上面兩個工具方式的區別是,前者在獲取失敗時丟擲異常,後者返回null。

以上方法適合不同的情況,請根據具體情況選用相應的方法。

這裡值得提一點的是,系統中用到上述方法的類實際上就於spring框架緊密耦合在一起了,因為這些類是知

道它們是執行在spring框架上的,因此,系統中,應該盡量的減少這類應用,使系統盡可能的獨立於當前運

行環境,盡量通過di的方式獲取需要的服務提供者。

本人認為,方法五比較可行,可以設計乙個工具類,專門來獲取spring中的類。減少對業務**的侵入性。

小龍推薦:動態獲取ioc容器管理的bean依賴於專案的執行環境,因此可以通過配置引數的方式選擇實現方式

無論怎麼實現,都需要注意載入的spring配置檔案的路徑,推薦使用classpath取相對路徑,方便專案的移植。

Spring動態獲取IoC容器中管理的Bean

spring框架將di模式發揮到了極至,因此,系統裡面用spring管理的bean相互之間的獲取是非常方便的,只要使用者提供乙個setter方法並在配置檔案中配置該屬性就可以。但是,對於系統中非spring框架管理的類,如果需要獲取spring管理的類,或者,程式中需要動態的根據be an的id來獲...

spring獲取ioc例項

實現了beanfactoryaware介面的類,能夠獲取到beanfactory物件,從而可以通過bean工廠獲取ioc容器中的例項,beanfactory也是spring容器最基本的介面。他負責配置 建立 管理ioc容器中的bean。package com.business.platform.sp...

Spring元件和IOC容器

主要完成三個功能,在spring中好比乙個演員的角色 1 bean的建立 由beanfactory完成 2 bean的定義 由beandefinition完成 3 bean的解析 由beandefinitionreader完成 該元件提供了spring的基本執行環境,在spring中好比乙個舞台的角...