真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Spring如何控制反轉(zhuǎn)IOC容器

本篇文章給大家分享的是有關(guān)Spring如何控制反轉(zhuǎn)IOC容器,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)憑借專業(yè)的設(shè)計團隊扎實的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識和豐厚的資源優(yōu)勢,提供專業(yè)的網(wǎng)站策劃、成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站優(yōu)化、軟件開發(fā)、網(wǎng)站改版等服務(wù),在成都十載的網(wǎng)站建設(shè)設(shè)計經(jīng)驗,為成都近1000家中小型企業(yè)策劃設(shè)計了網(wǎng)站。

控制反轉(zhuǎn)(IoC)容器

一.什么是控制反轉(zhuǎn)模式?  不創(chuàng)建對象,但是描述創(chuàng)建它們的方式。在代碼中不直接與對象和服務(wù)連接,但在配置文件中描述哪一個組件需要哪一項服務(wù)。  容器 (在 Spring 框架中是 IOC 容器) 負責(zé)將這些聯(lián)系在一起。

二.Spring 中的 Bean?  由Spring IoC容器所管理的對象被稱之為bean。bean就是由Spring容器初始化、裝配及被管理的對象。  bean定義以及bean相互間的依賴關(guān)系將通過配置元數(shù)據(jù)來描述。   三,什么是Spring IoC容器?  org.springframework.beans包是Spring IoC容器的基礎(chǔ)。  org.springframework.beans.factory.BeanFactory接口是Spring IoC容器的實際代表者。  IoC容器負責(zé)容納此前所描述的bean,并對bean進行管理。

1.BeanFactory 接口   BeanFactory是IoC容器的核心接口。是工廠設(shè)計模式的實現(xiàn)。bean 工廠的概念是 Spring 作為 IOC 容器的基礎(chǔ)。   它的職責(zé)包括:實例化、檢索、配置應(yīng)用程序中的對象及管理對象之間的關(guān)系。      BeanFactory 支持兩個對象模型。    單態(tài)模型:提供了具有特定名稱的對象的共享實例,可以在查詢時對其進行檢索。Singleton 是默認的也是最常用的對象模型。對于無狀態(tài)服務(wù)對象很理想。    原型模型:確保每次檢索都會創(chuàng)建單獨的對象。在每個用戶都需要自己的對象時,原型模型最適合。

2.ApplicationContext接口   org.springframework.context.ApplicationContext由BeanFactory接口派生擴展而來,因而提供了 BeanFactory所有的功能。   在構(gòu)建J2EE應(yīng)用時,使用ApplicationContext將是更好的選擇。      context包還提供了以下的功能:    MessageSource, 提供國際化的消息訪問。    資源訪問,如URL和文件。    事件傳播,實現(xiàn)了ApplicationListener接口的bean。    載入多個(有繼承關(guān)系)上下文 。

3.配置元數(shù)據(jù)   Spring IoC容器將讀取配置元數(shù)據(jù);并通過它對應(yīng)用中各個對象進行實例化、配置以及組裝。      基于XML的元數(shù)據(jù)是最常用到的配置元數(shù)據(jù)格式。然而,它并不是***的描述格式。Spring IoC容器在這一點上是完全開放的。   當(dāng)使用基于XML的配置元數(shù)據(jù)時,將在頂層的元素中配置一個或多個元素。      bean定義與應(yīng)用程序中實際使用的對象一一對應(yīng)。通常情況下bean的定義包括: 服務(wù)層對象、數(shù)據(jù)訪問層對象(DAO)、類似Struts Action的表示層對象、Hibernate SessionFactory對象、JMS Queue對象等等。

四.實例化IoC容器(基于XML的元數(shù)據(jù))  通過ClassPathXmlApplicationContext類加載一個或多個XML文檔來實例化BeanFactory接口的實現(xiàn)擴展 ApplicationContext類。  要從 BeanFactory 檢索 bean,只需調(diào)用 getBean() 方法,傳入將要檢索的 bean 的名稱即可。

五.一個簡單Spring 示例

1.建立Java項目:MySpring

2.導(dǎo)入Spring框架。

3.創(chuàng)建JavaBean:HelloBean。編寫testHello方法。

  1. HelloBean.java  

  2. view plaincopy to clipboardprint?  

  3.  size=2>  package com.qu.bean;  

  4.   public class HelloBean {  

  5.    public String sayHello(String name){  

  6.    return String.format("%1$s : Hello World!", name);  

  7.    }  

  8.   } 

  9.   package com.qu.bean;  

  10.   public class HelloBean {  

  11.    public String sayHello(String name){  

  12.    return String.format("%1$s : Hello World!", name);  

  13.    }  

  14.   } 

4.配置applicationContext.xml 將HelloBean注入Spring容器。

  1. applicationContext.xml  

  2. view plaincopy to clipboardprint?  

  3.  size=2>   version="1.0" encoding="UTF-8"?> 

  4.    

  5.    xmlns="http://www.springframework.org/schema/beans" 

  6.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

  7.    xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 

  8.    

  9.       class="com.qu.bean.HelloBean" id="helloBean"> 

  10.     

  11.    

  12.    version="1.0" encoding="UTF-8"?> 

  13.    

  14.    xmlns="http://www.springframework.org/schema/beans" 

  15.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

  16.    xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 

  17.    

  18.       class="com.qu.bean.HelloBean" id="helloBean"> 

  19.     

  20.   view plaincopy to clipboardprint?  

  21.  size=2>helloBean.xml 

  22. helloBean.xmlview plaincopy to clipboardprint?  

  23.  version="1.0" encoding="UTF-8"?> 

  24.  

  25.                      xmlns="http://www.springframework.org/schema/beans" 

  26.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

  27.     xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 

  28.      class="com.qu.bean.HelloBean" id="helloBean"> 

  29.      

  30.  

  31.  version="1.0" encoding="UTF-8"?> 

  32.  

  33.                      xmlns="http://www.springframework.org/schema/beans" 

  34.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

  35.  xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> 

  36.   class="com.qu.bean.HelloBean" id="helloBean"> 

  37.   

  38. view plaincopy to clipboardprint?  

  39.  size=2> 

5.導(dǎo)入Junit 4 測試。

6.編寫測試類TestHello 。重寫setUp方法實例化容器,編寫testHello方法測試HelloBean的hello方法。

  1. view plaincopy to clipboardprint?  

  2.      size=2>   TestHello.java 

  3.        TestHello.javaview plaincopy to clipboardprint?  

  4.      size=2> 

  5.        package com.qu.test;  

  6.        import org.springframework.context.ApplicationContext;  

  7.        import org.springframework.context.support.ClassPathXmlApplicationContext;  

  8.        import com.qu.bean.HelloBean;  

  9.        import junit.framework.TestCase;  

  10.        public class TestHello extends TestCase {  

  11.         private ApplicationContext ctx;  

  12.         private HelloBean hello;  

  13.         protected void setUp() throws Exception {  

  14.          super.setUp();  

  15.          this.ctx = new ClassPathXmlApplicationContext(  

  16.            new String[] {"ApplicationContext.xml","OtherXML/helloBean.xml"});  

  17.          this.hello = (HelloBean) this.ctx.getBean("helloBean");  

  18.         }  

  19.         public void testSayHello(){  

  20.          assertEquals("Java : Hello World!", this.hello.sayHello("Java"));  

  21.         }  

  22.        }  

  23.      

以上就是Spring如何控制反轉(zhuǎn)IOC容器,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享題目:Spring如何控制反轉(zhuǎn)IOC容器
鏈接地址:http://weahome.cn/article/pppihi.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部