Sping容器BeanFactory和ApplicationText解释

本文介绍了Spring的核心——IOC,并重点解析了BeanFactory和ApplicationContext的区别。BeanFactory作为Spring的底层接口,负责Bean的加载、实例化和依赖管理;而ApplicationContext面向开发者,提供国际化和资源加载功能,启动时会初始化所有单例Bean。此外,文章还探讨了Bean的懒加载和MessageSource在国际化中的应用。
摘要由CSDN通过智能技术生成

IOC(Inverse Of Control 控制反转)是Spring容器的内核,AOP、声明式事务管理等功能都是围绕此展开。

对于软件来说,控制反转即某一接口的具体实现类的控制权从调用者手中转交到第三方手中,由Spring容器借Bean配置来进行控制。

后又因IOC这个概念不够具体,引发业界内广泛的讨论,最后由一位软件界大佬提出了一个新的概念,即DI(Dependency Injection 依赖注入),也就是移除我们对某一实现类的依赖,改由第三方(容器或者协作类)注入,以此降低依赖。

ApplicationContext是BeanFactory的子接口,通常称作Spring上下文。两者都是Spring的核心接口,都可以代表Spring容器,Spring容器是生成Bean实例的工厂,该接口最常用的两个类:ClassPathXmlApplicationContextFileSystemXmlApplicationContext,前者是从类路径中加载配置文件,后者是从系统中加载配置文件。

BeanFactory是Spring里面最底层的接口,包含了各种Bean的定义,读取Bean的配置文档,管理Bean的加载,实例化,控制Bean的生命周期,维护Bean之间的依赖关系。

BeanFactory是Spring框架的基础设施,面向Spring本身;

ApplicationContext是面向Spring框架的开发者,几乎所有的开发场合都可以直接使用ApplicationContext而不是底层的BeanFactory。

BeanFactory和ApplicationContext虽说都是Spring容器,但是有明显区别。

·装载Bean的区别

BeanFactory在启动时并不会去加载Bean,只有在getBean的时候才回去加载Bean

ApplicationContext在读取配置文件时会默认初始化所有单例Bean(scope=“singleton”,如果为多例=scope=“prototype”,默认以懒加载的方式),当然可以设置Bean的懒加载Lazy-init,在这一点上ApplicationContext有一个好处是可以提前知道一些问题,而BeanFactory直到getBean时才会发现问题,但较BeanFactory而言,浪费资源。

<bean id="Person" class="demo.Person" lazy-init
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值