国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

淺析Java的Spring框架中IOC容器容器的應用

2019-11-26 14:47:11
字體:
來源:轉載
供稿:網友

Spring容器是Spring框架的核心。容器將創建對象,它們連接在一起,配置它們,并從創建到銷毀管理他們的整個生命周期。在Spring容器使用依賴注入(DI)來管理組成應用程序的組件。這些對象被稱為Spring Beans。
容器獲得其上的哪些對象進行實例化,配置和組裝通過閱讀提供的配置元數據的說明。配置元數據可以通過XML,Java注釋或Java代碼來表示。下面的圖是Spring如何工作的高層次圖。 Spring IoC容器是利用Java的POJO類和配置元數據的產生完全配置和可執行的系統或應用程序。

2015125165503855.jpg (493×341)

Spring提供了BeanFactory和ApplicationContext兩種不同類型的容器:

BeanFactory容器
這是最簡單的容器提供DI的基本支持,并由org.springframework.beans.factory.BeanFactory 接口中定義。BeanFactory或者相關的接口,例如實現BeanFactoryAware,InitializingBean,DisposableBean,仍然存在在Spring向后兼容性與大量的 Spring 整合第三方框架的目的。

有相當數量的接口來提供直出隨取即用的Spring 的 BeanFactory接口的實現。最常用BeanFactory 實現的是 XmlBeanFactoryclass。此容器從XML文件中讀取配置元數據,并使用它來創建一個完全配置的系統或應用程序。

BeanFactory中通常是首選的資源,如移動設備或基于applet的應用受到限制。因此,使用一個ApplicationContext,除非你有一個很好的理由不這樣做。

例如:
讓我們使用 Eclipse IDE,然后按照下面的步驟來創建一個Spring應用程序:

2015125151001831.png (587×296)

這里是HelloWorld.java文件的內容:

package com.yiibai;public class HelloWorld { private String message; public void setMessage(String message){ this.message = message; } public void getMessage(){ System.out.println("Your Message : " + message); }}

下面是第二個文件 MainApp.java 的內容:

package com.yiibai;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.core.io.ClassPathResource;public class MainApp { public static void main(String[] args) { XmlBeanFactory factory = new XmlBeanFactory    (new ClassPathResource("Beans.xml")); HelloWorld obj = (HelloWorld) factory.getBean("helloWorld"); obj.getMessage(); }}

有以下兩個要點需要注意在主要程序中:

第一步是創建工廠對象,我們使用的框架API XmlBeanFactory() 來創建工廠bean,并使用ClassPathResource() API來加載在CLASSPATH中可用的bean配置文件。在API 需要 XmlBeanFactory() 創建和初始化所有對象。在配置文件中提到的 bean 類。

第二個步驟是用來使用創建的bean工廠對象的 getBean() 方法獲得所需的 bean。此方法使用bean 的 id 返回,最終可以構造到實際對象的通用對象。一旦有了對象,就可以使用這個對象調用任何類方法。

以下是bean配置文件beans.xml中的內容

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloWorld" class="com.yiibai.HelloWorld"> <property name="message" value="Hello World!"/> </bean></beans>

一旦創建源和bean配置文件來完成,讓我們運行應用程序。如果一切順利,您的應用程序,這將打印以下信息:

Your Message : Hello World!


ApplicationContext容器
應用程序上下文(Application Context)是Spring更先進的容器。以它的BeanFactory類似可以加載bean定義,并根據要求分配bean。此外,它增加了更多的企業特定的功能,例如從一個屬性文件解析文本消息的能力,并發布應用程序事件感興趣的事件監聽器的能力。此容器是由org.springframework.context.ApplicationContext 接口定義。

ApplicationContext 包括了 BeanFactory 所有的功能,因此通常建議在 BeanFactory。 BeanFactory中仍然可以用于重量輕的應用,如移動裝置或基于小應用程序的應用程序。

最常用的 ApplicationContext 實現是:

FileSystemXmlApplicationContext: 這個容器加載從一個XML文件中的bean的定義。在這里,你需要提供給構造函數中的XML bean配置文件的完整路徑。

ClassPathXmlApplicationContext 這個容器加載從一個XML文件中的bean的定義。在這里,您不需要提供XML文件的完整路徑,但你需要正確設置CLASSPATH,因為這個容器會看在CLASSPATH中bean的XML配置文件.

WebXmlApplicationContext: 此容器加載所有的bean從Web應用程序中定義的XML文件。

我們已經看到在Spring 的Hello World示例ClassPathXmlApplicationContext容器的例子,我們將更多地談論XmlWebApplicationContext 在一個單獨的章節時,我們將討論基于Web的Spring應用程序。所以,讓我們看到FileSystemXmlApplicationContext一個例子。

例子:
我們使用Eclipse IDE,然后按照下面的步驟來創建一個 Spring 應用程序:

2015125151100266.png (593×298)

這里是HelloWorld.java 文件的內容:

package com.yiibai;public class HelloWorld { private String message; public void setMessage(String message){ this.message = message; } public void getMessage(){ System.out.println("Your Message : " + message); }}

下面是第二個文件MainApp.java 的內容:

package com.yiibai;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;public class MainApp { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext  ("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml"); HelloWorld obj = (HelloWorld) context.getBean("helloWorld"); obj.getMessage(); }}

有以下兩個要點需要注意在主要程序中:

第一步是創建工廠對象,我們使用的框架API的 FileSystemXmlApplicationContext來從給定的路徑加載bean配置文件之后,創建工廠bean。API的FileSystemXmlApplicationContext()需要創建和初始化所有的對象。在XML bean配置文件中提到的bean類。

第二個步驟是用來使用創建的上下文的getBean()方法獲得所需的bean。此方法使用bean的id返回,最終可以構造到實際對象的通用對象。一旦有了對象,我們就可以使用這個對象調用任何類方法。

以下是bean配置文件beans.xml中的內容

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloWorld" class="com.yiibai.HelloWorld"> <property name="message" value="Hello World!"/> </bean></beans>

一旦創建源代碼和bean配置文件完成,讓我們運行應用程序。如果一切順利,這將打印以下信息:

Your Message : Hello World!

總結

在ApplicationContext 容器包括BeanFactory的容器的所有功能,所以因此通常建議在BeanFactory。 BeanFactory仍然可以用于重量輕的應用,如移動裝置或基于小應用程序的應用中的數據量和速度是顯著。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武隆县| 肃北| 富裕县| 东乡族自治县| 泰安市| 股票| 翼城县| 罗城| 临潭县| 台山市| 石泉县| 崇明县| 涞水县| 永福县| 绵阳市| 锡林浩特市| 鹤壁市| 香港 | 长治市| 上高县| 乌鲁木齐县| 明星| 宁陕县| 科技| 达尔| 民和| 德令哈市| 资兴市| 西吉县| 祁连县| 文昌市| 上林县| 剑川县| 肇庆市| 襄樊市| 岱山县| 玛曲县| 且末县| 兰溪市| 云阳县| 桂东县|