掃碼下載編程獅APP
Application Context 是 BeanFactory 的子接口,也被稱為 Spring 上下文。
Application Context 是 spring 中較高級的容器。和 BeanFactory 類似,它可以加載配置文件中定義的 bean,將所有的 bean 集中在一起,當有請求的時候分配 bean。 另外,它增加了企業(yè)所需要的功能,比如,從屬性文件中解析文本信息和將事件傳遞給所指定的監(jiān)聽器。這個容器在 org.springframework.context.ApplicationContext interface 接口中定義。
ApplicationContext 包含 BeanFactory 所有的功能,一般情況下,相對于 BeanFactory,ApplicationContext 會更加優(yōu)秀。當然,BeanFactory 仍可以在輕量級應(yīng)用中使用,比如移動設(shè)備或者基于 applet 的應(yīng)用程序。
最常被使用的 ApplicationContext 接口實現(xiàn):
FileSystemXmlApplicationContext:該容器從 XML 文件中加載已被定義的 bean。在這里,你需要提供給構(gòu)造器 XML 文件的完整路徑。
ClassPathXmlApplicationContext:該容器從 XML 文件中加載已被定義的 bean。在這里,你不需要提供 XML 文件的完整路徑,只需正確配置 CLASSPATH 環(huán)境變量即可,因為,容器會從 CLASSPATH 中搜索 bean 配置文件。
我們已經(jīng)在 Spring Hello World Example章節(jié)中看到過 ClassPathXmlApplicationContext 容器,并且,在基于 spring 的 web 應(yīng)用程序這個獨立的章節(jié)中,我們討論了很多關(guān)于 WebXmlApplicationContext。所以,接下來,讓我們看一個關(guān)于 FileSystemXmlApplicationContext 的例子。
假設(shè)我們已經(jīng)安裝 Eclipse IDE,按照下面的步驟,我們可以創(chuàng)建一個 Spring 應(yīng)用程序。
步驟 | 描述 |
---|---|
1 | 創(chuàng)建一個名為 SpringExample 的工程, 在 src 下新建一個名為 com.tutorialspoint 的文件夾src |
2 | 點擊右鍵,選擇 Add External JARs 選項,導入 Spring 的庫文件,正如我們在 Spring Hello World Example 章節(jié)中提到的導入方式。 |
3 | 在 com.tutorialspoint 文件夾下創(chuàng)建 HelloWorld.java 和 MainApp.java 兩個類文件。 |
4 | 文件夾下創(chuàng)建 Bean 的配置文件 Beans.xml。 |
5 | 最后的步驟是編輯所有 JAVA 文件的內(nèi)容和 Bean 的配置文件,按照以前我們講的那樣去運行應(yīng)用程序。 |
下面是文件 HelloWorld.java 的內(nèi)容:
package com.tutorialspoint;
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)容:
package com.tutorialspoint;
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();
}
}
在主程序當中,我們需要注意以下兩點:
第一步生成工廠對象。加載完指定路徑下 bean 配置文件后,利用框架提供的 FileSystemXmlApplicationContext API 去生成工廠 bean。FileSystemXmlApplicationContext 負責生成和初始化所有的對象,比如,所有在 XML bean 配置文件中的 bean。
下面是配置文件 Beans.xml 中的內(nèi)容:
<?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.tutorialspoint.HelloWorld">
<property name="message" value="Hello World!"/>
</bean>
</beans>
如果你已經(jīng)完成上面的內(nèi)容,接下來,讓我們運行這個應(yīng)用程序。如果程序沒有錯誤,你將從控制臺看到以下信息:
Your Message : Hello World!
更多建議: