BeanFactory和ApplicationContext的区别

mac2024-08-02  58

ApplicationContext常用的三个实现类

ClassPathXmlApplicationContext:可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。(常用)FileSystemXmlApplicationContext:可以加载磁盘任意路径下的配置文件(必须有访问权限)。(不常用)AnnotationConfigApplicationContext:用于读取注解创建容器的。

BeanFactory和ApplicationContext的区别

BeanFactory:是IoC容器的一个顶层接口。定义了IoC容器的基本功能,功能不完善。 BeanFactory在创建核心容器时,创建对象采取的策略是采用延迟加载的方式。也就是说,什么时候根据id创建对象了,什么时候才真正的创建对象。多例对象适用(scope=“prototype”)。

ApplicationContext:复杂的容器接口,ApplicationContext扩展了BeanFactory接口。 ApplicationContext在构建容器时,创建对象采用的是立即加载的方式,也就是说一读取完配置文件就马上创建配置文件中的对象。可以根据配置文件智能的选择单例或多例(单例对象和多例对象都适用(scope="singleton"或scope=“prototype”)

(测试方法:在service中添加一个构造方法。)

最新回复(0)