Spring基础 专题
专题目录
您的位置:java > Spring基础专题 > Spring ApplicationContext 容器
Spring ApplicationContext 容器
作者:--    发布时间:2019-11-20

application context 是 beanfactory 的子接口,也被成为 spring 上下文。

application context 是 spring 中较高级的容器。和 beanfactory 类似,它可以加载配置文件中定义的 bean,将所有的 bean 集中在一起,当有请求的时候分配 bean。 另外,它增加了企业所需要的功能,比如,从属性文件中解析文本信息和将事件传递给所指定的监听器。这个容器在 org.springframework.context.applicationcontext interface 接口中定义。

applicationcontext 包含 beanfactory 所有的功能,一般情况下,相对于 beanfactory,applicationcontext 会更加优秀。当然,beanfactory 仍可以在轻量级应用中使用,比如移动设备或者基于 applet 的应用程序。

最常被使用的 applicationcontext 接口实现:

  • filesystemxmlapplicationcontext:该容器从 xml 文件中加载已被定义的 bean。在这里,你需要提供给构造器 xml 文件的完整路径。

  • classpathxmlapplicationcontext:该容器从 xml 文件中加载已被定义的 bean。在这里,你不需要提供 xml 文件的完整路径,只需正确配置 classpath 环境变量即可,因为,容器会从 classpath 中搜索 bean 配置文件。

  • webxmlapplicationcontext:该容器会在一个 web 应用程序的范围内加载在 xml 文件中已被定义的 bean。

我们已经在 spring hello world example章节中看到过 classpathxmlapplicationcontext 容器,并且,在基于 spring 的 web 应用程序这个独立的章节中,我们讨论了很多关于 xmlwebapplicationcontext。所以,接下来,让我们看一个关于 filesystemxmlapplicationcontext 的例子。

例子:

假设我们已经安装 eclipse ide,按照下面的步骤,我们可以创建一个 spring 应用程序。

步骤 描述
1 创建一个名为 springexample 的工程, 在 src 下新建一个名为 com.tutorialspoint 的文件夹src
2 点击右键,选择 add external jars 选项,导入 spring 的库文件,正如我们在 spring hello world example 章节中提到的导入方式。
3 在 com.tutorialspoint 文件夹下创建 helloworld.java 和 mainapp.java 两个类文件。
4 文件夹下创建 bean 的配置文件 beans.xml。
5 最后的步骤是编辑所有 java 文件的内容和 bean 的配置文件,按照以前我们讲的那样去运行应用程序。

下面是文件 helloworld.java 的内容:

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 的内容:

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。

  • 第二步利用第一步生成的上下文中的 getbean() 方法得到所需要的 bean。 这个方法通过配置文件中的 bean id 来返回一个真正的对象。一旦得到这个对象,就可以利用这个对象来调用任何方法。

下面是配置文件 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.tutorialspoint.helloworld">
       <property name="message" value="hello world!"/>
   </bean>

</beans>

如果你已经完成上面的内容,接下来,让我们运行这个应用程序。如果程序没有错误,你将从控制台看到以下信息:

your message : hello world!


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册