這篇文章將為大家詳細(xì)講解有關(guān)Spring中IOC容器的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出佛山免費(fèi)做網(wǎng)站回饋大家。Spring的IOC的過程也被稱為依賴注入(DI),那么對(duì)象可以通過構(gòu)造函數(shù)參數(shù),工廠方法的參數(shù)或在工廠方法構(gòu)造或返回的對(duì)象實(shí)例上設(shè)置的屬性來定義它們的依賴關(guān)系,然后容器 在創(chuàng)建bean時(shí)注入這些依賴關(guān)系。Spring實(shí)現(xiàn)IOC容器的基礎(chǔ)是org.springframework.be和org.springframework.context。
核心接口BeanFactory 接口提供了一種能夠管理任何類型對(duì)象的高級(jí)配置機(jī)制。 ApplicationContext 是一個(gè)子接口BeanFactory。它增加了與Spring的AOP功能更容易的集成; BeanFactory提供了配置框架和基本功能,并ApplicationContext增加了更多的企業(yè)特定功能。
在Spring中,構(gòu)成應(yīng)用程序的骨干并由Spring IoC 容器管理的對(duì)象稱為bean。bean是一個(gè)實(shí)例化,組裝并由Spring IoC容器管理的對(duì)象。
Spring如何工作的視圖:
Spring容器xml配置管理
通常是多個(gè)bean定義組成?;赬ML的配置元數(shù)據(jù)將這些bean配置為
如下圖提供spring的官方的配置文件模板(素材來源www.spring.io)
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> |
當(dāng)你通過構(gòu)造函數(shù)的方法創(chuàng)建一個(gè)bean時(shí),所有的普通類都可以被Spring使用和兼容。也就是說,正在開發(fā)的類不需要實(shí)現(xiàn)任何特定的接口或以特定的方式編碼。只需指定bean類就足夠了。但是,根據(jù)您用于特定bean的IoC類型,需要一個(gè)默認(rèn)(空)構(gòu)造函數(shù)。
使用基于XML的配置元數(shù)據(jù),您可以指定您的bean類如下:
其中 bean 中的class 是我們交于spring初始化的bean的全路徑。
在定義使用靜態(tài)工廠方法創(chuàng)建的bean時(shí),可以使用該class 屬性來指定包含static工廠方法的類和factory-method指定工廠方法本身的名稱的屬性。你應(yīng)該可以調(diào)用這個(gè)方法(使用后面描述的可選參數(shù))并返回一個(gè)實(shí)例化對(duì)象,這個(gè)實(shí)例化對(duì)象隨后被視為是通過構(gòu)造函數(shù)創(chuàng)建的。用于這種bean定義的就是被稱為靜態(tài)工廠方式創(chuàng)建。
靜態(tài)工廠的定義
public class ClientService { private static ClientService clientService = new ClientService(); private ClientService() {} public static ClientService createInstance() { return clientService; } } |
配置xml
factory-method="createInstance"/> |
這樣的spring框架在調(diào)用IOC實(shí)例化的使用是通過反射創(chuàng)建 調(diào)用靜態(tài)工廠的中的static方法去創(chuàng)建對(duì)象。此時(shí)在創(chuàng)建的對(duì)象的是在靜態(tài)方法手中。
實(shí)例化工廠的方式相同于靜態(tài)工廠方法,只是在一個(gè)實(shí)例工廠中反射一個(gè)存在對(duì)象的非靜態(tài)方法,從而去spring容器去創(chuàng)建實(shí)例化的bean。
創(chuàng)建實(shí)例化工廠
public class DefaultServiceLocator { private static ClientService clientService = new ClientServiceImpl(); private static AccountService accountService = new AccountServiceImpl(); public ClientService createClientServiceInstance() { return clientService; } public AccountService createAccountServiceInstance() { return accountService; } } |
配置xml:
factory-method="createClientServiceInstance"/> factory-method="createAccountServiceInstance"/> |
關(guān)于“Spring中IOC容器的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。