Spring学习(三):BeanFactory和ApplicationContext

 

1.概述:

             Bean工厂(com.springframework.beans.factory.BeanFactory)是spring框架最核心的接口,它提供了高级Ioc的配置机制;BeanFactory使管理不同类型的java对象成为 可能;

             应用上下文(com.springframework.context.ApplicationContext)是建立在BeanFactory基础之上,提供了更多面向应用的功能;

             我们一般称BeanFactory为IOC容器,而ApplicationContext为应用上下文;

2.BeanFactory:

            一个工厂类,用来管理java bean;

           spring为BeanFactory提供了多种实现,最常用的是XmlBeanFactory.下面使用xml来装配beans;

          

package mainTest;

import java.io.IOException;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

import beans.Car;

public class ResourceLoaderTest {

	public static void main(String[] args) throws IOException {
		ResourcePatternResolver resolver =new PathMatchingResourcePatternResolver();
		Resource res[]=resolver.getResources("classpath*:**/bean.xml");
		//BeanFactory bean=new XmlBeanFactory(res);
		for(Resource s :res){
			BeanFactory bean=new XmlBeanFactory(s);
			Car car=bean.getBean("car",Car.class);
			System.out.println(car.toString());
		}
//		Car car=bean.getBean("car",Car.class);
//		System.out.println(car.toString());
	}

}

 

注意:在初始化BeanFactory时,必须为其提供一种日志框架,这样启动Spring时才不会报错;

4.ApplicationContext:

          ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext;前者是默认加载配置文件,后者默认从文件系统中装载配置文件;

         

package mainTest;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import beans.Car;

public class ApplicationContextTest {

	public static void main(String[] args) {
		//默认加载路径
		//ApplicationContext context=new ClassPathXmlApplicationContext("classpath*:**/bean.xml");
		//文件系统装配加载路径
		ApplicationContext context=new FileSystemXmlApplicationContext(new String[]{"D:/workspace/springLearn/src/config1/bean.xml","D:/workspace/springLearn/src/config/bean.xml"});
		Car car=(Car)context.getBean("car");
		System.out.println(car.toString());
		Car car2=(Car)context.getBean("car1");
		System.out.println(car2.toString());
	}

}

 

5.WebApplicationContext:

           专门为Web应用准备的,它允许从相对于Web根目录路径装载配置文件完成初始化工作;从WebApplicationContext中可以获取ServletContext的引用,整个Web应用上下文对象将作为属性放置到ServletContext中,以便Web环境可以访问Spring应用上下文;

       


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: BeanFactoryApplicationContext 是在 Spring 框架中用于管理 Bean 对象的两个重要接口。 BeanFactorySpring 框架中最基本的容器,它主要提供了对 Bean 的实例化、配置和管理的功能。 ApplicationContextBeanFactory 的一个子接口,它在 BeanFactory 的基础上提供了更多高级的特性,如国际化、事件传递等。 总的来说,如果只需要基本的 Bean 管理功能,可以使用 BeanFactory;如果需要使用更多高级特性,则可以使用 ApplicationContext。 ### 回答2: BeanFactoryApplicationContext都是Spring框架中用来管理Bean的容器,但它们之间也有一些不同之处。 BeanFactorySpring框架最基本的容器接口,它提供了最基本的IOC容器功能。 它的主要责任是实例化、配置和管理应用程序中的对象。它通过读取配置文件或者注解来创建和管理Bean对象,可以单例或者多例的方式提供Bean。它使用延迟初始化的方式进行Bean的实例化,即只有在真正使用Bean时才会进行实例化,从而避免了不必要的资源消耗。BeanFactory是一个底层的接口,对于开发者而言使用的更多的是其子类ApplicationContextApplicationContextBeanFactory的子接口,它提供了更丰富的功能和更方便的使用方式。ApplicationContext除了提供BeanFactory的功能外,还可以直接集成AOP、事件传播、国际化信息等功能。它支持更多类型的Bean,比如单例、多例以及原型等。它提供了更多的钩子方法,比如Bean的初始化和销毁操作等。ApplicationContext还支持通过容器的扩展机制来实现定制化需求,比如自定义Bean的创建方式、属性注入方式等。 总结起来,BeanFactorySpring框架最基本的IOC容器接口,提供了实例化和管理Bean的基本功能。而ApplicationContextBeanFactory的子接口,提供了更多高级功能和更方便的使用方式。在实际开发中,我们更多地会使用ApplicationContext来管理Bean,因为它提供了更多的功能和灵活性,能够更好地满足我们的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值