ApplicationContext的实现类以及BeanFactory & ApplicationContext的区别

这篇博客详细介绍了Spring中ApplicationContext的三种实现类:ClassPathXMLApplicationContext、FileSystemXmlApplicationContext和AnnotationConfigApplicationContext。同时,文章对比了BeanFactory与ApplicationContext的区别,指出ApplicationContext在配置文件读取后立即创建对象,适合单例;而BeanFactory采用延迟加载,适用于多例。Spring通过配置自动选择对象创建策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ApplicationContext的实现类
在这里插入图片描述
        ① ClassPathXMLApplicationContext:加载类路径下的配置文件,要求配置文件必须在类路径下。
在这里插入图片描述
        ② FileSystemXmlApplicationContext:在访问允许的前提下加载位于磁盘任意路径下的配置文件。
            示例:ApplicationContext ac = new FileSystemXmlApplicationContext(“C:\Users\Administrator\Desktop\applicationContext.xml”);

        ③ AnnotationConfigApplicationContext:基于读取注解的方式创建容器。

二、BeanFactory与ApplicationContext的区别
        * ApplicationContext在构建核心容器时的对象创建策略是配置文件读取完毕后立即创建指定的对象(立即加载)。
        证明:在测试类的容器声明处添加断点,并在持久层实现类或业务层实现类中定义一个无参构造函数进行测试输出,随后程序以Debug模式启动,单步跳过创建容器的代码后发现控制台输出测试文字,据此说明核心容器构建对象的策略是读取完配置文件后立即创建配置文件中指定的对象。
在这里插入图片描述
在这里插入图片描述
        * BeanFactory在容器创建完成后并不会马上创建配置文件中指定的对象,而是在对象真正需要使用时才根据bean标签的id属性值构建指定的对象(延迟加载)。
        证明:程序以Debug模式启动后运行至示例代码的前三行时控制台仅输出测试文字,无任何对象信息输出,据此说明BeanFactory仅在对象真正需要使用时才进行创建。
在这里插入图片描述
        结论:ApplicationContext适用于创建单例对象,而BeanFactory则更适用于创建多例对象,Spring的强大之处在于能够根据配置上的不同自动选择对象的创建策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值