国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 淺析Java的Spring框架中IOC容器容器的應(yīng)用

淺析Java的Spring框架中IOC容器容器的應(yīng)用

2020-03-08 15:20goldensun JAVA教程

這篇文章主要介紹了Java的Spring框架中IOC容器容器的應(yīng)用,包括BeanFactory容器和ApplicationContext容器的介紹,需要的朋友可以參考下

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

淺析Java的Spring框架中IOC容器容器的應(yīng)用

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

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

有相當數(shù)量的接口來提供直出隨取即用的Spring 的 BeanFactory接口的實現(xiàn)。最常用BeanFactory 實現(xiàn)的是 XmlBeanFactoryclass。此容器從XML文件中讀取配置元數(shù)據(jù),并使用它來創(chuàng)建一個完全配置的系統(tǒng)或應(yīng)用程序。

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

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

淺析Java的Spring框架中IOC容器容器的應(yīng)用

這里是HelloWorld.java文件的內(nèi)容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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 的內(nèi)容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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();
 }
}

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

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

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

以下是bean配置文件beans.xml中的內(nèi)容

?
1
2
3
4
5
6
7
8
9
10
11
12
<?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>

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

?
1
Your Message : Hello World!


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

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

最常用的 ApplicationContext 實現(xiàn)是:

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

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

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

我們已經(jīng)看到在Spring 的Hello World示例ClassPathXmlApplicationContext容器的例子,我們將更多地談?wù)揦mlWebApplicationContext 在一個單獨的章節(jié)時,我們將討論基于Web的Spring應(yīng)用程序。所以,讓我們看到FileSystemXmlApplicationContext一個例子。

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

淺析Java的Spring框架中IOC容器容器的應(yīng)用

這里是HelloWorld.java 文件的內(nèi)容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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 的內(nèi)容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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();
 }
}

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

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

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

以下是bean配置文件beans.xml中的內(nèi)容

?
1
2
3
4
5
6
7
8
9
10
11
12
<?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>

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

?
1
Your Message : Hello World!

 

總結(jié)

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线午夜 | 国产精品无码久久久久 | 国产精品免费观看 | 综合久久一区 | 午夜国产精品视频 | 亚洲91av | 福利视频在线播放 | 在线色网 | 在线国产一区二区 | 日本不卡免费一区二区三区综合久久 | 中文字幕 日韩有码 | 国产欧美精品 | 色综合99| 久草在线免费资源 | 欧美第一区| 久久一二 | 久久免费看少妇a高潮一片黄特 | 欧美日韩国产一区二区三区 | 久久久久久久av | 美女主播精品视频一二三四 | 国产一级免费 | 亚洲乱码国产乱码精品精的特点 | 久久免费99精品久久久久久 | 伊人一区 | 视频一区二区国产 | 在线一区视频 | 中文字幕一区二区三区四区 | a久久 | 亚洲视频一区在线播放 | 99伊人 | 国产一区二区三区免费看 | 北条麻妃在线一区二区 | 久久草在线视频 | 在线99热| 日韩在线观看第一页 | 中文字幕在线一区二区三区 | av手机在线播放 | 国产精品剧情一区二区三区 | 日本1区 | 国产精品乱码一区二区三区 | 羞羞视频在线免费 |