目录
1.什么是BeanFactory?
2.BeanFactory和ApplicationContext的区别?
3.简述SpringIOC的加载过程
4.Spring中有哪些扩展接口及调用时机?
5.简述Bean的生命周期
1.什么是BeanFactory?
BeanFactory是用于访问Spring Bean容器(IOC容器)的顶层核心接口,典型的工厂模式,用于生产Bean的一个Bean工厂,其提供了生产Bean所需的最基本规则。
2.BeanFactory和ApplicationContext的区别?
相同点:都可以创建Bean
不同点:
(1)功能上,ApplicationContext实现了BeanFactory,是BeanFactory的子接口。ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,比如国际化,自动注册BeanDefinition、自动读取配置文件、扫描配置注解等。
(2)加载上,BeanFactory采用的是延迟加载形式来注入Bean,只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化。这样,我们就不能发现一些存在的Spring的配置问题。如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。
ApplicationContext在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。 ApplicationContext启动后预载入所有的单实例Bean,通过预载入单实例bean ,程序需要Bean时无需等待,因为它们已经提前创建好了。
(3)相对于基本的BeanFactory,ApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。
3.简述SpringIOC的加载过程
4.Spring中有哪些扩展接口及调用时机?
- BeanFactoryPostProcessor
- BeanPostProcessor
5.简述Bean的生命周期
《Spring Bean生命周期》
|