关于Spring之ApplicationContext上下文的理解

最近一直在看spring相关的知识,觉得spring真的是一个知识的宝藏,废话少说,进入今天的主角:ApplicationContext上下文;

Spring有两个核心的接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口,他们代表的是spring的整个容器,spring容器是生成Bean实例的工厂,并管理容器中的Bean。

 Bean是Spring管理的基本单位,在基于Spring的Java EE应用中,所有的组件都被当成Bean处理,包括数据源、Hibernate的SessionFactory、事务管理器等。在Spring中,Bean的是一个非常广义的概念,任何的Java对象、Java组件都被当成Bean处理。而且应用中的所有组件,都处于Spring的管理下,都被Spring以Bean的方式管理,Spring负责创建Bean实例,并管理他们的生命周期。Bean在Spring容器中运行,无须感受Spring容器的存在,一样可以接受Spring的依赖注入,包括Bean属性的注入,协作者的注入、依赖关系的注入等。

         Spring容器负责创建Bean实例,所以需要知道每个Bean的实现类,Java程序面向接口编程,无须关心Bean实例的实现类;但是Spring容器必须能够精确知道每个Bean实例的实现类,因此Spring配置文件必须精确配置Bean实例的实现类。

一、BeanFactory接口

Spring容器最基本的接口就是BeanFactor。BeanFactory负责配置、创建、管理Bean,他有一个子接口:ApplicationContext,因此也称之为Spring上下文。Spring容器负责管理Bean与Bean之间的依赖关系。

BeanFactory接口包含的几个基本的方法:

  • Boolean containBean(String name):判断Spring容器是否包含id为name的Bean实例。
  • Boolean isSingleton(String name) throws NoSuchBeanDefinitionException:断Spring容器是否包含id为name的Bean是否是单例模式。
  • <T> ObjectProvider<T> getBeanProvider(Class<T> var1):获取Spring容器中Bean的提供方。
  • <T> getBean(Class<T> requiredTypr):获取Spring容器中属于requiredType类型的唯一的Bean实例。
  • Object getBean(String name):返回Sprin容器中id为name的Bean实例。
  • <T> T getBean(String name,Class requiredType):返回容器中id为name,并且类型为requiredType的Bean
  • Class <?> getType(String name):返回容器中指定Bean实例的类型。

在使用BeanFactory接口时,我们一般都是使用这个实现类:org.springframework.beans.factory.xml.XmlBeanFactory。然而ApplicationContext作为BeanFactory的子接口,使用它作为Spring容器会更加方便。它的实现类有:FileSystemXmlApplicationContext、ClassPathXmlApplicationContext、AnnotationConfigApplicationContext。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值