前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站点击跳转浏览。
首先我们可以在类的继承关系中看到这样一个图
在上一篇Spring中基于xml的IOC解耦中我们用的就是ApplicationContext接口中的一个实现类ClassPathXmlApplicationContext,现在我们详细介绍一下ApplicationContext里面的实现类
ClassPathXmlApplicationContext: 它是从类的根路径下加载配置文件 推荐使用这种 FileSystemXmlApplicationContext: 它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。 AnnotationConfigApplicationContext: 当我们使用注解配置容器对象时,需要使用此类来创建 spring 容器。它用来读取注解。
BeanFactory 和 ApplicationContext 的区别
BeanFactory 才是 Spring 容器中的顶层接口。
ApplicationContext 是它的子接口。
BeanFactory 和 ApplicationContext 的区别: 创建对象的时间点不一样。 ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。 BeanFactory:什么使用什么时候创建对象。
ApplicationContext:创建对象采取的策略是立即加载方式,也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象。适应于单例对象使用。实际开发中推荐这个。
BeanFactory:创建对象采取的是延迟加载的方式,也就是说,什么时候根据id获取对象了,什么时候才真正加载对象。适应于多例对象。