Spring中BeanFactory与ApplicationContext的差别

本文对比了ApplicationContext与BeanFactory的区别,详细介绍了两者在Bean加载时机与依赖注入检查方面的不同,并提供了使用这两种方式从XML配置文件加载Bean的示例代码。

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

[b]区别:[/b]
ApplicationContext和BeanFactory相比,提供了更多的扩展功能,但其主要区别在于BeanFactory是延迟加载,如果Bean的某一个属性没有注入,BeanFactory加载后,直至第一次使用getBean方法调用此Bean时才会抛出异常;而ApplicationContext则在初始化自身时检验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext.
-----------------------------------------------------------------------------------------------------------------------------------
使用BeanFactory从xml配置文件加载bean:

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class BeanFactoryClient{

public static void main(String[] args){
BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
beanFactory.getBean("beanName");
}
}


使用ApplicationContext从xml配置文件加载bean:

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

public class ApplicationContextClient{

public static void main(String[] args) {
ApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");
cxt.getBean("beanName");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值