1. 程式人生 > >Spring中Bean的註冊與注入——XML方式

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; } }

相關推薦

SpringBean註冊注入——XML方式

  IoC,Inversion of Control,控制反轉指物件以前由程式構造,現在由ioc容器構造。DI,Dependency Injection,依賴注入指物件的依賴資源以前由程式注入,現在由ioc容器注入。spring的核心是ioc容器,體現為一個類,

SpringBean註冊注入——註解方式

<beans> // 註解Autowired的註解處理器 <bean class="....AutowiredAnnotationBeanPostProcessor"

Spring bean 註冊的原始碼解析

前言 所謂 bean 的註冊,就是把在配置檔案中配置的 <bean> 節點載入配記憶體中,供後續使用。 bean的註冊主要分為兩個階段,一個是準備階段,就是對配置檔案進行解析,把配置檔案載入到記憶體中,以 Document 的形式存放;第二個階段是對 Document 進行操作,獲取其中的節

SpringBean的三種裝配方式

bean的裝配通俗點就是依賴注入(spring的特點之一),再說通俗點就是類中屬性的賦值,而這種賦值不是由我們直接在程式碼中賦值,而是通過在配置檔案中配置值類實現的,給他起了一個高大上的名字,讓我來說就是把賦值包裝了一層還有一層呀。讓我們一起看看這三種裝配方式怎麼實現的吧!!

關於springbean的三種配置方式的比較

在學習spring時,看到有關spring中bean的三種配置方式:基於xml配置,基於註解配置和基於類配置。書中總結的很不錯,就記錄下來,方便學習和檢視。(三種配置方式的介紹可以參考:三種方式配Bea

Spring筆記三】SpringBeanXML方式裝配)

       我們可以把 Spring 看作一個大型的工廠,而 Spring 容器中的 Bean 就是該工廠的產品。要想使用這個工廠生產和管理Bean,就需要在配置檔案中告訴它需要哪些 Be

springbean的建構函式,Autowired(Value)注入@PostConstruct呼叫順序

最近在專案開發中遇到這樣一個需求,由於元資料在短時間內被客戶端多次讀取,因此希望直接將資料儲存到記憶體,以減少網路開銷,藉助guava cache於是有了下面這個類 /** * Created on 2018/10/18 */ @Component publ

Spring筆記三】SpringBeanXML方式配置)

我們可以把 Spring 看作一個大型的工廠,而 Spring 容器中的 Bean 就是該工廠的產品。要想使用這個工廠生產和管理Bean,就需要在配置檔案中告訴它需要哪些 Bean,以及需要使用何種方法將這些 Bean 裝配到一起。 首先,分清楚 JavaBean 和 

Springbean注入初始化方式—通過註解@Configuration @bean

雖然 2.0 版本釋出以來,Spring 陸續提供了十多個註解,但是提供的這些註解只是為了在某些情況下簡化 XML 的配置,並非要取代 XML 配置方式。這一點可以從 Spring IoC 容器的初始化類可以看出:ApplicationContext 介面的最常用的實現類是

Springbean的例項化方式IOC容器總結

提到spring,第一印象就是DI與IOC,雖然有概念上的解釋,但是要理解這些概念還是需要動手進行試驗。如果要深入瞭解spring的原來,那麼最先了解得就應該是spring容器。Spring提供了兩種型別的IOC容器實現:      1.beanFactory: IOC 容器

Springbean的四種注入方式

# 一、前言   最近在複習``Spring``的相關內容,這篇部落格就來記錄一下``Spring``為``bean``的屬性注入值的四種方式。這篇部落格主要講解在``xml``檔案中,如何為``bean``的屬性注入值,最後也會簡單提一下使用註解的方式。廢話不多說,直接開始吧。

SpringBean的配置方式之FactoryBean

alt mage -1 bsp image 技術分享 logs 指向 urn   Spring 中有兩種類型的 Bean, 一種是普通Bean, 另一種是工廠Bean, 即FactoryBean.   工廠 Bean 跟普通Bean不同, 其返回的對象不是指定類的一個實例,

SpringBean和配置和注入詳解

1 bean與spring容器的關係 Bean配置資訊定義了Bean的實現及依賴關係,Spring容器根據各種形式的Bean配置資訊在容器內部建立Bean定義登錄檔,然後根據登錄檔載入、例項化Bean,並建立Bean和Bean的依賴關係,最後將這些準備就緒的Bean放到

springbean配置和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

SpringBean的初始化及銷燬方式

Spring中Bean的兩種初始化方式 是什麼 為什麼 但是,如果必須要用多例Bean怎麼辦? 以下為Spring中的多例及初始化 再來說說初始化的一些不同細節 問題: 對Bean的銷

springBean注入(1)

Bean的注入包含的內容: XML注入 構造方法注入、靜態工廠注入、例項工廠注入,屬性注入的幾種方式(構造方法注入,set方法注入,p名稱空間注入,物件,集合、陣列、Map,Properties) Java注入:@Configuration、@Bean 自動注入:

JavaBean,POJO的簡單理解 ,JavaBeanSpringbean的區別

本文是我查閱多篇部落格總結下來的,不過有些概念可能理解還不夠準確,歡迎大家糾錯改正。 Java的一個特性,資料與行為相分離。資料就是成員變數,行為就是setter和getter方法 JavaBean是Java中開發的可以跨平臺的重要元件,在JSP中常用來 封裝業務邏輯

解決SpringQuart無法自動注入Bean問題

        因專案需求,之前專案中已經有定時器的例子了,但是需求那邊過來的需求之前用的定時器並不能滿足,之前的定時器是用spring裡面的@Scheduled(cron = "0 0 0 * * ? ")這種方式,這是一種死的定時器,需求要的是動態定時器,使用者新增一個

springbean,factorybeanbeanfactory

1. 普通Bean的建立 spring 中的普通bean的建立是通過讀取配置檔案,將所有配置檔案資訊儲存到beandefinition中,在使用getbean的時候通過反射建立例項,然後再將屬性值填充。 1.1 普通bean的注入方式 1)