Spring中Bean的註冊與注入——XML方式
IoC,Inversion of Control,控制反轉指物件以前由程式構造,現在由ioc容器構造。DI,Dependency Injection,依賴注入指物件的依賴資源以前由程式注入,現在由ioc容器注入。spring的核心是ioc容器,體現為一個類,代表是BeanFactory介面,其所做的一切都是基於容器管理的物件bean。該介面的直接實現類XmlBeanFactory從檔案系統載入xml檔案,直接擴充套件介面ApplicationContext的實現類FileSystemXmlApplicationContext從檔案系統載入xml檔案,另一個實現類ClassPathXmlApplicationContext從類路徑classpath載入xml檔案,內部通過BeanReader讀取並解析xml,並根據解析內容生成BeanDefinition配置元資料類,最後由此類來構造物件bean。
<beans>
// 註冊java自帶的型別,程式中若果有多個類使用同一個型別的同一份資料,且此資料經常變化,可拿出來維護,由spring管理
<bean id="xxHashMap" class="java.util.HashMap">
// 構造注入
<constructor-arg>
<map>
<entry key="k1" value="v1"/>
<entry key="k2" value ="v2"/>
..
</map>
</constructor-arg>
</bean>
// 無參構造器註冊bean
<bean id="xxDao" class="..XxDaoImpl" />
<bean id="yyServiceRpc" class="..YyServiceRpc" />
<bean id="xxService" class="....XxServiceImpl">
// set注入
<property name="xxDao" ref="xxDao" />
<property name="yyServiceRpc" ref="yyServiceRpc" />
<property name="xxHashMap" ref="xxHashMap" />
</bean>
// 有參構造器註冊bean
<bean id="xxService" class="..XxServiceImpl">
// 構造注入
<constructor-arg name="xxDao" ref="xxDao" />
<constructor-arg name="yyServiceRpc" ref="yyServiceRpc" />
<constructor-arg name="xxHashMap" ref="xxHashMap" />
</bean>
</beans>
public class XxDao implements XxDaoImpl {
..
}
public class YyServiceRpc {
// 外部服務
private YyService yyService;
..
public void setYyService(YyService yyService) {
this.yyService = yyService;
}
}
public class XxService implements XxServiceImpl {
private HashMap<String, String> xxHashMap;
public XxDao xxDao;
public YyServiceRpc yyServiceRpc;
..
// 構造注入必須提供有參構造方法
public XxService(XxHashMap xxHashMap, XxDao xxDao, YyServiceRpc yyServiceRpc) {
this.xxHashMap = xxHashMap;
this.xxDao = xxDao;
this.yyServiceRpc= yyServiceRpc;
}
// set注入必須提供set方法
public void setXxHashMap(XxHashMap xxHashMap) {
this.xxHashMap = xxHashMap;
}
public void setXxDao(XxDao xxDao) {
this.xxDao = xxDao;
}
public void setYyServiceRpc (YyServiceRpc yyServiceRpc) {
this.yyServiceRpc = yyServiceRpc;
}
}
相關推薦
Spring中Bean的註冊與注入——XML方式
IoC,Inversion of Control,控制反轉指物件以前由程式構造,現在由ioc容器構造。DI,Dependency Injection,依賴注入指物件的依賴資源以前由程式注入,現在由ioc容器注入。spring的核心是ioc容器,體現為一個類,
Spring中Bean的註冊與注入——註解方式
<beans> // 註解Autowired的註解處理器 <bean class="....AutowiredAnnotationBeanPostProcessor"
Spring 中 bean 註冊的原始碼解析
前言 所謂 bean 的註冊,就是把在配置檔案中配置的 <bean> 節點載入配記憶體中,供後續使用。 bean的註冊主要分為兩個階段,一個是準備階段,就是對配置檔案進行解析,把配置檔案載入到記憶體中,以 Document 的形式存放;第二個階段是對 Document 進行操作,獲取其中的節
Spring中Bean的三種裝配方式
bean的裝配通俗點就是依賴注入(spring的特點之一),再說通俗點就是類中屬性的賦值,而這種賦值不是由我們直接在程式碼中賦值,而是通過在配置檔案中配置值類實現的,給他起了一個高大上的名字,讓我來說就是把賦值包裝了一層還有一層呀。讓我們一起看看這三種裝配方式怎麼實現的吧!!
關於spring中bean的三種配置方式的比較
在學習spring時,看到有關spring中bean的三種配置方式:基於xml配置,基於註解配置和基於類配置。書中總結的很不錯,就記錄下來,方便學習和檢視。(三種配置方式的介紹可以參考:三種方式配Bea
【Spring筆記三】Spring中Bean(XML方式裝配)
我們可以把 Spring 看作一個大型的工廠,而 Spring 容器中的 Bean 就是該工廠的產品。要想使用這個工廠生產和管理Bean,就需要在配置檔案中告訴它需要哪些 Be
spring中bean的建構函式,Autowired(Value)注入與@PostConstruct呼叫順序
最近在專案開發中遇到這樣一個需求,由於元資料在短時間內被客戶端多次讀取,因此希望直接將資料儲存到記憶體,以減少網路開銷,藉助guava cache於是有了下面這個類 /** * Created on 2018/10/18 */ @Component publ
【Spring筆記三】Spring中Bean(XML方式配置)
我們可以把 Spring 看作一個大型的工廠,而 Spring 容器中的 Bean 就是該工廠的產品。要想使用這個工廠生產和管理Bean,就需要在配置檔案中告訴它需要哪些 Bean,以及需要使用何種方法將這些 Bean 裝配到一起。 首先,分清楚 JavaBean 和
Spring中bean注入初始化方式—通過註解@Configuration @bean
雖然 2.0 版本釋出以來,Spring 陸續提供了十多個註解,但是提供的這些註解只是為了在某些情況下簡化 XML 的配置,並非要取代 XML 配置方式。這一點可以從 Spring IoC 容器的初始化類可以看出:ApplicationContext 介面的最常用的實現類是
Spring中bean的例項化方式與IOC容器總結
提到spring,第一印象就是DI與IOC,雖然有概念上的解釋,但是要理解這些概念還是需要動手進行試驗。如果要深入瞭解spring的原來,那麼最先了解得就應該是spring容器。Spring提供了兩種型別的IOC容器實現: 1.beanFactory: IOC 容器
Spring中bean的四種注入方式
# 一、前言 最近在複習``Spring``的相關內容,這篇部落格就來記錄一下``Spring``為``bean``的屬性注入值的四種方式。這篇部落格主要講解在``xml``檔案中,如何為``bean``的屬性注入值,最後也會簡單提一下使用註解的方式。廢話不多說,直接開始吧。
Spring中Bean的配置方式之FactoryBean
alt mage -1 bsp image 技術分享 logs 指向 urn Spring 中有兩種類型的 Bean, 一種是普通Bean, 另一種是工廠Bean, 即FactoryBean. 工廠 Bean 跟普通Bean不同, 其返回的對象不是指定類的一個實例,
Spring中Bean和配置和注入詳解
1 bean與spring容器的關係 Bean配置資訊定義了Bean的實現及依賴關係,Spring容器根據各種形式的Bean配置資訊在容器內部建立Bean定義登錄檔,然後根據登錄檔載入、例項化Bean,並建立Bean和Bean的依賴關係,最後將這些準備就緒的Bean放到
spring中bean配置和bean注入
轉自 https://www.cnblogs.com/wuchanming/p/5426746.html bean與spring容器的關係 Bean配置資訊定義了Bean的實現及依賴關係,Spring容器根據各種形式的Bean配置資訊在容器內部建立Bean定義
Spring框架中bean註冊相關的註解
官方資訊 XML名稱空間中的context(上下文,環境)。 xmlns:context="http://www.springframework.org/schema/context" Elemen
Spring中Bean的初始化及銷燬方式
Spring中Bean的兩種初始化方式 是什麼 為什麼 但是,如果必須要用多例Bean怎麼辦? 以下為Spring中的多例及初始化 再來說說初始化的一些不同細節 問題: 對Bean的銷
spring中Bean的注入(1)
Bean的注入包含的內容: XML注入 構造方法注入、靜態工廠注入、例項工廠注入,屬性注入的幾種方式(構造方法注入,set方法注入,p名稱空間注入,物件,集合、陣列、Map,Properties) Java注入:@Configuration、@Bean 自動注入:
JavaBean,POJO的簡單理解 ,JavaBean與Spring中bean的區別
本文是我查閱多篇部落格總結下來的,不過有些概念可能理解還不夠準確,歡迎大家糾錯改正。 Java的一個特性,資料與行為相分離。資料就是成員變數,行為就是setter和getter方法 JavaBean是Java中開發的可以跨平臺的重要元件,在JSP中常用來 封裝業務邏輯
解決Spring中Quart無法自動注入Bean問題
因專案需求,之前專案中已經有定時器的例子了,但是需求那邊過來的需求之前用的定時器並不能滿足,之前的定時器是用spring裡面的@Scheduled(cron = "0 0 0 * * ? ")這種方式,這是一種死的定時器,需求要的是動態定時器,使用者新增一個
spring中bean,factorybean與beanfactory
1. 普通Bean的建立 spring 中的普通bean的建立是通過讀取配置檔案,將所有配置檔案資訊儲存到beandefinition中,在使用getbean的時候通過反射建立例項,然後再將屬性值填充。 1.1 普通bean的注入方式 1)