创建 ApplicationContext 对象时使用了 ClassPathXmlApplicationContext 类,这个类用于加载 Spring 配置文件、创建和初始化所有对象(Bean)。
ApplicationContext.getBean() 方法用来获取 Bean,该方法返回值类型为 Object,通过强制类型转换为 HelloWorld 的实例对象,调用其中的 getMessage() 方法。
1、BeanFactory
BeanFactory采用懒加载机制,容器在加载配置文件时不会立即创建Java对象,只有在程序中使用这个对象的时候才会创建。
- 注意:BeanFactory 是 Spring 内部使用接口,通常情况下不提供给开发人员使用。
public static void main(String[] args) {
BeanFactory context = new ClassPathXmlApplicationContext("Beans.xml");
HelloWorld obj = context.getBean("helloWorld", HelloWorld.class);
obj.getMessage();
}
2、ApplicationContext
ApplicationContext是beanFactory的子接口,是对其的扩展,
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("Beans.xml");
HelloSpring obj=context.getBean("helloworld",HelloSpring.class);
obj.getMessage();
}
ApplicationContext下面有两个类,具体使用方法见下表。
| 实现类 | 描述 | 示例代码 |
|---|---|---|
| ClassPathXmlApplicationContext | 加载类路径 ClassPath 下指定的 XML 配置文件,并完成 ApplicationContext 的实例化工作 | ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation); |
| FileSystemXmlApplicationContext | 加载指定的文件系统路径中指定的 XML 配置文件,并完成 ApplicationContext 的实例化工作 | ApplicationContext applicationContext = new FileSystemXmlApplicationContext(String configLocation); |
- 参数 configLocation 用于指定 Spring 配置文件的名称和位置,如 Beans.xml
public static void main(String[] args) {
//使用 FileSystemXmlApplicationContext 加载指定路径下的配置文件 Bean.xml
BeanFactory context = new FileSystemXmlApplicationContext("D:\\eclipe workspace\\spring workspace\\HelloSpring\\src\\Beans.xml");
HelloWorld obj = context.getBean("helloWorld", HelloWorld.class);
obj.getMessage();
}
版权声明:本文为qq_43192247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。