[b]区别:[/b]
ApplicationContext和BeanFactory相比,提供了更多的扩展功能,但其主要区别在于BeanFactory是延迟加载,如果Bean的某一个属性没有注入,BeanFactory加载后,直至第一次使用getBean方法调用此Bean时才会抛出异常;而ApplicationContext则在初始化自身时检验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext.
-----------------------------------------------------------------------------------------------------------------------------------
使用BeanFactory从xml配置文件加载bean:
使用ApplicationContext从xml配置文件加载bean:
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");
}
}
本文对比了ApplicationContext与BeanFactory的区别,详细介绍了两者在Bean加载时机与依赖注入检查方面的不同,并提供了使用这两种方式从XML配置文件加载Bean的示例代码。
1037

被折叠的 条评论
为什么被折叠?



