[Spring实战系列](5)Spring应用上下文


下面是Spring-Hello-world项目的运行代码:
   
   
package com.sjf.bean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 测试类
* @author sjf0115
*
*/
public class Test {
private static ApplicationContext context;
private static HelloWorld helloWorld;
public static void main(String[] args) {
// 1. 创建Spring IOC容器
context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 2. 从IOC容器中获取Bean实例
helloWorld = (HelloWorld)context.getBean("helloworld");
// 3.调用sayHello方法
helloWorld.sayHello();
}
}

从代码中可以看出使用Spring框架的第一步就是使用Spring应用上下文创建Spring IOC容器:
   
   
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
因此下面我们就说明一下Spring应用 上下文的事情。

Spring 自带了几种类型的应用上下文:

Spring上下文 描述
ClassPathXmlApplicationContext类路径下的XML 配置文件中加载上下文定义,把应用上下文定义文件当作类资源。
FileSystemXmlapplicationcontext 读取文件系统下的XML 配置文件并加载上下文定义。
XmlWebApplicationContext 读取Web 应用下的XML 配置文件并装载上下文定义。

我们会在以后慢慢说明基于Spring 的Web 应用,届时我们将对XmlWebApplicationContext进行详细解释。现在我们先简单地使用FileSystemXmlApplicationContext从文件系统中加载应用上下文或者使用ClassPathXmlApplicationContext从类路径中加载应用上下文。

无论是从文件系统中装载应用上下文还是从类路径下装载应用上下文,将Bean加载到Bean 工厂的过程都是相似的。例如,如下代码展示了如何加载一个File-SystemXmlApplicationContext:
   
   
ApplicationContext context = new FileSystemXmlApplicationContext("d:/applicationContext.xml");

类似地,你可以使用ClassPathXmlApplicationContext 从应用的类路径下加载应用上下文:
   
   
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

使用FileSystemXmlApplicationContext 和使用ClassPathXmlApplicationContext的 区别在于
  • FileSystemXmlApplicationContext 在指定的文件系统路径下查找applicationContext.xml 文件;
  • ClassPathXmlApplicationContext 是在所有的类路径(包含JAR 文件)下查找applicationContext.xml.xml 文件。


下图表示了我以前写applicationContext.xml存放位置的两种方式:



QQ截图20160201140251.png QQ截图20160201140107.png
之前还表示对applicationContext.xml存放位置表示疑惑,难道只凭一个名字就能找到它?现在终于明白了, ClassPathXmlApplicationContext 是在所有的类路径(包含JAR 文件)下查找 applicationContext.xml .xml 文件,所以以上两种方式Spring IOC容器都能找到。

通过现有的应用上下文引用,你可以调用应用上下文的getBean() 方法从Spring 容器中获取Bean。
   
   
// 2. 从IOC容器中获取Bean实例
helloWorld = (HelloWorld)context.getBean("helloworld");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@SmartSi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值